Skip to content

Instantly share code, notes, and snippets.

@peinwag
Created July 29, 2015 08:48
Show Gist options
  • Save peinwag/6e48bd333edd11a7ec6b to your computer and use it in GitHub Desktop.
Save peinwag/6e48bd333edd11a7ec6b to your computer and use it in GitHub Desktop.
Vorarbeit:
Die Fragen sind auf bestimmte Einstellungen gemapped:
-----------------------------------------------------------
<?php
$questions = [
'fb' => [
'Nutzen Sie Facebook verschlüsselt?',
'Sind Ihre Beiträge öffentlich?',
'Prüfung der Beiträge und Inhalte in denen Sie markiert wurden?',
'Darf jeder Facebook-Nutzer Freundschaftsanfragen versenden?',
'Wird Ihr Profil von Suchmaschinen angezeigt?',
'Ist Ihre Chronik öffentlich zugänglich?',
'Prüfung der markierten Beiträge bevor diese, in Ihrer Chronik erscheinen?',
'Sind Beiträge in denen Sie markiert wurden, in Ihrer Chronik öffentlich sichtbar?',
'Sind fremde Posts in Ihrer Chronik öffentlich sichtbar?',
'Überprüfung der Markierungen die andere Personen zu Ihren Beiträgen hinzufügen, vor dem veröffentlichen?',
'Personen in der Freundesliste in bestimmte Gruppen einteilen?',
'Personen in der der Freundesliste zur Eingeschränkten-Liste hinzufügen?',
'Sind bestimmte Facebook-Nutzer blockiert?',
'Sind bestimmte App-Einladungen blockiert?',
'Sind bestimmte Apps blockiert?',
'Werden Gefällt-Mir-Angaben und oder Handlungen mit Werbeanzeigen verknüpft?',
],
];
$mappingQuestionToSettingKey = [
0 => 'enable-ssl',
1 => 'set-posts-public',
2 => 'check-marked-posts',
3 => 'enable-friendship-requests',
4 => 'show-profile-in-search-engines',
5 => 'is-timeline-public',
6 => 'check-posts-before-showing-in-timeline',
7 => 'set-marked-posts-public',
8 => 'enable-external-posts-in-timeline',
9 => 'check-marks-before-publishing',
10 => 'arrange-persons-in-groups',
11 => 'add-persons-to-restricted-lists',
12 => 'block-certain-users',
13 => 'block-certain-app-invitations',
14 => 'block-certain-apps',
15 => 'connect-likes-with-ads'
];
?>
-----------------------------------------------------------
Jede Einstellungen kann entweder true oder false sein. Anhand der Usereingaben wird die Konfiguration zusammen gebaut:
-----------------------------------------------------------
<?php
if (!empty($_POST['answers'])) {
$config = array_combine($mappingQuestionToSettingKey, $_POST['answers']['fb']);
}
>?
-------------------------------------------------------------
So würde die Konfiguration nach der Usereingabe aussehen:
Array
(
[enable-ssl] => 1
[set-posts-public] => 0
[check-marked-posts] => 1
[enable-friendship-requests] => 0
[show-profile-in-search-engines] => 0
[is-timeline-public] => 0
[check-posts-before-showing-in-timeline] => 1
[set-marked-posts-public] => 0
[enable-external-posts-in-timeline] => 0
[check-marks-before-publishing] => 1
[arrange-persons-in-groups] => 1
[add-persons-to-restricted-lists] => 1
[block-certain-users] => 1
[block-certain-app-invitations] => 1
[block-certain-apps] => 1
[connect-likes-with-ads] => 0
)
-------------------------------------------------------------
Die Einstellungen werden durch einen einzigen Aufruf der Facebook Security API geändert.
<?php
$endpoint = sprintf('https://api.facebook.com/security-settings/?authtoken=%s', 'mypersonalauthtoken');
$httpClient = new HttpClient();
$httpClient->post($endpoint, $config);
?>
-------------------------------------------------------------
Nach diesem Aufruf sind die Werte entsprechend der Usereingabe in Facebook geändert.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment