ПРИМЕЧАНИЕ. Когда пользователь принимает мои разрешения на использование моего приложения. Я прошу их принять manage_notifications
Я так растерялся. Я изучаю это в Интернете, и кажется, что я получаю смесь устаревшей и неправильной информации, и я пытаюсь отправить уведомление пользователю, используя мое приложение facebook canvas, используя графику facebook. следующее, как я это делаю и не работаю.
public function getAccessToken() { $app_id = $this->settings['app_id']; $app_secrete = $this->settings['app_secrete']; $url = "https://graph.facebook.com/oauth/access_token?". "client_id={$app_id}". "&client_secret={$app_secrete}". "&grant_type=client_credentials"; $c = curl_init($url); // necessary so CURL doesn't dump the results on your page curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($c); $result = explode("=", $result); curl_close ($c); return $result[1]; }
Результат проходит примерно так: access_token=523216317ewwer235|K4A1XugBpajwrweu1K2k12jzckdU
. поэтому я взорвал знак =
внутри кода. Я вызываю эту функцию каждый раз, когда пользователь вводит мое приложение. Я беру код доступа и передаю его как $token
в следующем коде.
public function alertUser($userid,$token,$message="You have a notification") { $inviteMessage = $message; $inviteMessage = urlencode($inviteMessage); $url = "https://graph.facebook.com/{$userid}/notifications?access_token={$token}&". "template={$inviteMessage}&ref=notify"; $c = curl_init($url); // necessary so CURL doesn't dump the results on your page curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($c); curl_close ($c); $r = json_decode($result); }
и я получаю следующий ответ
object(stdClass) { error => object(stdClass) { message => 'A user access token is required to request this resource.' type => 'OAuthException' code => (int) 102 } }
Вы должны использовать запросы POST, чтобы сделать уведомления:
curl_setopt ($c, CURLOPT_POST, true);
Очевидно, вы делаете запросы GET, пытаясь запросить ресурс.