Аутентификация приложения FACEBOOK – PHP

мне нужно пройти аутентификацию перед отправкой на мою собственную стену, так что вот мой код

function get_app_token($appid, $appsecret) { $args = array( 'grant_type' => 'client_credentials', 'client_id' => $appid, 'client_secret' => $appsecret ); $ch = curl_init(); $url = 'https://graph.facebook.com/oauth/access_token'; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $args); $data = curl_exec($ch); return json_encode($data); } $token = get_app_token($appid, $appsecret); $attachment = array('message' => '', 'access_token' => $token, 'name' => 'Attachment Name', 'caption' => 'Attachment Caption', 'link' => 'http://apps.facebook.com/xxxxxx/', 'description' => 'Description .....', 'picture' => 'http://www.google.com/logo.jpg', 'actions' => array(array('name' => 'Action Text', 'link' => 'http://apps.facebook.com/xxxxxx/')) ); $result = $facebook->api('/me/feed/', 'post', $attachment); 

я получил ошибку OAuthException, недопустимую сигнатуру токена доступа OAuth.

вы можете получить access_token из массива сеансов непосредственно объекта facebook.

 $session = $facebook->getSession(); $session['access_token']; 

конечно, вам нужно авторизоваться. если сеанс не установлен, вы должны перенаправить на loginUrl

 $facebook->getLoginUrl(array('req_perms' => 'email,read_stream,publish_stream')); // this will return url for your authorization 

и запросить разрешение, в котором вы нуждаетесь.

Значением $token является access_token=<YOUR_ACCESS_TOKEN>

Вы не можете передать значение $token непосредственно в параметр access_token .

 $token = get_app_token($appid, $appsecret); $access_token = split('=',$token); $attachment = array( 'message' => '', 'access_token' => $access_token[1], 'name' => 'Attachment Name', 'caption' => 'Attachment Caption', 'link' => 'http://apps.facebook.com/xxxxxx/', 'description' => 'Description .....', 'picture' => 'http://www.google.com/logo.jpg', 'actions' => array(array('name' => 'Action Text', 'link' => 'http://apps.facebook.com/xxxxxx/')) ); 

Надеюсь, это поможет в создании этой работы … 🙂

client_credentials доступа client_credentials не дает никакого доступа к /me (кто бы «я» был в этом случае? Нет ничего, что связывает его с пользователем), не говоря уже о публикации доступа. Он предназначен для использования только с вызовами Graph API на уровне приложений, например, для получения данных Insights приложения.