2014-12-19 3 views
1

Я просто пытаюсь обновить до PHP SDK 4.0. Я не могу найти свою ошибку и надеюсь, что вы можете мне помочь. Я скопировал все файлы в папку»./facebook4" и реализован следующий код:Facebook getloginurl Дополнительные разрешения

// Skip these two lines if you're using Composer 
define('FACEBOOK_SDK_V4_SRC_DIR', '/./facebook4/src/Facebook/'); 

// if you include this file you don't need to use composer 
require __DIR__ . '/./facebook4/autoload.php'; 

// include required files form Facebook SDK 
require_once('./facebook4/HttpClients/FacebookHttpable.php'); 
require_once('./facebook4/HttpClients/FacebookCurl.php'); 
require_once('./facebook4/HttpClients/FacebookCurlHttpClient.php'); 
require_once('./facebook4/Entities/AccessToken.php'); 
require_once('./facebook4/Entities/SignedRequest.php'); 
require_once('./facebook4/FacebookSession.php'); 
require_once('./facebook4/FacebookRedirectLoginHelper.php'); 
require_once('./facebook4/FacebookRequest.php'); 
require_once('./facebook4/FacebookResponse.php'); 
require_once('./facebook4/FacebookSDKException.php'); 
require_once('./facebook4/FacebookRequestException.php'); 
require_once('./facebook4/FacebookOtherException.php'); 
require_once('./facebook4/FacebookAuthorizationException.php'); 
require_once('./facebook4/GraphObject.php'); 
require_once('./facebook4/GraphSessionInfo.php'); 

use Facebook\HttpClients\FacebookHttpable; 
use Facebook\HttpClients\FacebookCurl; 
use Facebook\HttpClients\FacebookCurlHttpClient; 
use Facebook\Entities\AccessToken; 
use Facebook\Entities\SignedRequest; 
use Facebook\FacebookSession; 
use Facebook\FacebookRedirectLoginHelper; 
use Facebook\FacebookRequest; 
use Facebook\FacebookResponse; 
use Facebook\FacebookSDKException; 
use Facebook\FacebookRequestException; 
use Facebook\FacebookOtherException; 
use Facebook\FacebookAuthorizationException; 
use Facebook\GraphObject; 
use Facebook\GraphSessionInfo; 

    FacebookSession::setDefaultApplication('AppID','secretAppID'); 

$redirect_url = "http://www.mypage.de/Logged.php"; 

// use the helper 
$facebook = new FacebookRedirectLoginHelper($redirect_url); 
// get a loginurl 


$permissions = array(
'email',   
'read_stream', 
'user_actions:criminalcase' 
); 

echo "Test1"; 
$loginUrl = $facebook->getLoginUrl($permissions); 
echo "Test2"; 

echo "<a href='".$loginUrl."'>Link here</a>"; 

Test1 отображается, когда я звоню страницу, но Test2 и„Ссылка здесь“не отображаются. Поэтому я думаю, что должно быть проблема с getLoginUrl, но я понятия не имею, что это такое

+1

Проверьте журнал ошибок – WizKid

ответ

0

https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/

Присмотритесь на массив:

$params = array(
    'scope' => 'read_stream, friends_likes', 
    'redirect_uri' => 'https://www.myapp.com/post_login_page' 
); 

Так что в вашем случае, это должно быть как это:

$permissions = array(
    'scope' => 'email, read_stream, user_actions:criminalcase' 
); 

не уверен, что вы хотите достичь с «user_actions: criminalcase», нет такого разрешения. Кроме того, вам не нужны все требующие утверждения при использовании автозагрузчика.

Важны: Вы, скорее всего, не получите read_stream одобрены, поэтому он будет работать только для пользователей с ролью в вашем App (Администратор/Developer/Tester):

Это разрешение предоставлено приложениями здания Facebook-брендированный клиент на платформах, где Facebook еще не доступен. Например, приложения Android и iOS не будут одобрены для этого разрешения. Кроме того, веб-приложениям, настольным и телевизионным приложениям не будет предоставлено это разрешение.

Источник: https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-read_stream

+0

Благодарим за предоставленный вам ответ. Мне нужно read_strea и user_actions: criminalcase читать сообщения, которые были сделаны из игр facebook на стене пользователя. Со старым SDK не было никаких проблем с получением этих разрешений и чтением сообщений. Если они изменили это сейчас, то каковы еще возможности для чтения игровых сообщений, например, из уголовного дела или фермы? – Grit

+0

Я смотрел abit вокруг на этой странице, и я нашел еще 2 области, которые я, возможно, мог бы использовать вместо read_stream, если я правильно понимаю: user_games_activity и user_actions: {app_namespace}. Может ли кто-нибудь сказать мне разницу? – Grit

+0

BTW Я изменил исходный код на: $ permissions = array ( 'scope' => 'email, read_stream, user_actions: criminalcase' ); но результат все тот же, Test2 не отображается – Grit

0

Существует еще проблема в вашем синтаксисе.

попробовать этот

$permissions = array('email', 'read_stream', 'user_actions:criminalcase'); 

Я не уверен, о своих "user_actions: criminalcase" разрешение.

Но я исправил здесь синтаксис.

Смежные вопросы