2011-08-07 16 views
2

私は過去数日間Graph APIを開発してきました。私がPHP-SDKを使ってAPI呼び出しをしようとすると、空のJSONオブジェクトが返されます。しかし、http://developers.facebook.com/docs/reference/api/のFBで提供されているリンクからアクセストークンをコピーすると、jsonの応答が得られます。Facebook Graph API getAccessToken()が機能しない

これは、リクエストで送信しているアクセストークンが原因であると想定します。 ヘルプありがとうございました。

マイコード:

include_once "fbInit.php"; 
$access = $facebook->getAccessToken(); 
$user = $facebook->getUser(); 
echo $access; 
if(!$user) 
{ 
$loginUrl = $facebook->getLoginUrl(); 
header("Location:".$loginUrl); 
} 
$userWall = $facebook->api('/me/feed',array('access_token'=>$access)) ; 
var_dump($userWall); 

答えて

1

getAccessTokenは()のみSDKに内部に格納されたアクセストークンを返し、それが1を生成したり、フェッチしません。 SDKを使用する利点の1つは、例の最後に向かっているように直接アクセストークンを渡す必要がないことです。ユーザーがgetLoginUrl()によって生成されたリンクをクリックすると、アクセストークンがSDKに自動的に格納され、APIメソッドが機能します。ただし、ユーザーの壁に投稿するには、渡すよりも多くのパラメータが必要です。最近リリースされたPHP SDKのドキュメントで、これを行う方法の完全な例を見ることができますhttps://developers.intern.facebook.com/docs/reference/php/facebook-api/

+0

URLが機能していない、それはHTTPに変更されます。//developers.facebook .com/docs/reference/php/facebook-api /? –

+0

はい、URLはhttps://developers.facebook.com/docs/reference/php/facebook-api/ –

+1

です。これは当てはまりません(少なくとも1年以上経過してもそれは真実ではありません)。SDKは実際にフェッチしますあなたのためのアクセストークンは、Graph APIの呼び出しを介してシーンの背後にあります。 – Madbreaks

0

apiはあなたのためにアクセストークンを取得しようとしています - base_facebook.php行664のaccess_tokenグラフapiを形成します。このAPIコールは、あなたのリダイレクトURIのせいで失敗する可能性があります。あなたのリダイレクトuriと私のケースで - このコールが失敗した原因となる尾「/」があります。また、 "https://graph.facebook.com/oauth/access_token?"で電話をかけても同じリダイレクトURIは問題ありませんでした。

base_facebook.php内の_graph()関数でfacebookからの応答結果を出力するログを作成すると、私と同じ問題が発生したかどうかを素早く判断するのに役立ちます。

1

これは私の作品:

のindex.php

<?php 
    require_once("./config.php"); 
    $me = $facebook->api('/me'); 
    $access_token = $facebook->getAccessToken(); 
    $user = $facebook->getUser(); 
    $userWall = $facebook->api('/me/feed',array('access_token'=>$access_token)); 
    var_dump($userWall); 
?> 

config.phpの

<?php 
    require_once("facebook.php"); 

    $app_id = "app_id"; 
    $app_secret = "app_secret"; 

    $facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
     'cookie' => true 
    )); 

    if(is_null($facebook->getUser())) 
    { 
     header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos'))}"); 
     exit; 
    } 
?>