Как установить возрастное ограничение с использованием новой PHP-библиотеки? - PullRequest
0 голосов
/ 16 сентября 2011

Мой старый метод установки ограничения по возрасту похож на

$userID = $facebook->require_login($required_permissions = 'email, publish_stream,offline_access');
$info = array('age' => '18+');
$success = $facebook->api_client->admin_setRestrictionInfo($info);

в то время как старый метод скоро будет устаревшим, мне придется переписать код. Я перепробовал все средства, а затем обнаружил, что должен вызывать метод API таким образом,

$accessToken=$facebook->getAccessToken();
echo "<BR>access_token is: ".$accessToken;
$result = $facebook->api(array(
      'method' => 'admin.setRestrictionInfo',
      'restriction_str' => json_encode(array('age' => '18+')),
      "access_token" => $accessToken,
));

Однако всегда выдается следующая ошибка

access_token is: 112819402105453|9761b1a933b0277ff56453a6.1-1670893505|zJEVp2JXbHzRVSVXmJUgV-Fz13o
Fatal error: Uncaught Exception: 15: This method must be called with an app access_token. thrown in /usr/local/chroot/carrotbid/home/php/facebook_api/base_facebook.php on line 708

Есть решение? Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 20 октября 2011

Я боролся с этим какое-то время и, наконец, понял это, поэтому я подумал, что выложу для вас ответ.

То, что getAccessToken вещь - удар. Очевидно, именно этот токен используется в SDK, а не обязательно токен вашего приложения.

$access_token = $app_id . "|" . $app_secret;

$facebook->api(array(
    "access_token"=>$access_token,
     "method"=>"admin.setRestrictionInfo",
     "restriction_str"=>"{'location':'CA'}"
));

Очевидно, установите $app_id и $app_secret на свои. Структура токена доступа приложения: [app id]|[app secret].

Структура URL-вызова:

https://api.facebook.com/method/admin.setRestrictionInfo?access_token=[APP_ID]|[APP_SECRET]&format=json&restriction_str={%22type%22:%22alcohol%22} 

Надеюсь, это поможет !!!

...