2012-08-02 7 views
7

Graph apiを使用してFacebookのユーザーステータスを更新しようとしています。キャッチされないOAuthException:アクティブなアクセストークンは、現在のユーザーに関する情報を照会するために使用されなければならない私のコードはアクティブなアクセストークンを使用して、現在のユーザーグラフAPI例外に関する情報を照会する必要があります。

<?php 
    require 'facebook.php'; 
    $facebook = new Facebook(array( 
    'appId' =>'389694921095423', 
    'secret' =>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
    'cookie' => true 
    )); 
    $access_token = $facebook->getAccessToken(); 
    echo($access_token); 
    $me = null; 

    try 
    { 
     $uid = $facebook->getUser(); 
     $me = $facebook->api('/me'); 
     echo "Welcome User: " . $me['name'] . "<br />"; 
     //access permission 
     $permissions_needed = array('publish_stream', 'read_stream', 'offline_access', 'manage_pages'); 
     foreach($permissions_needed as $perm) 
     { 
      if(!isset($permissions_list['data'][0][$perm]) || $permissions_list['data'][0][$perm] != 1) 
      {  
      $login_url_params = array(
       'scope' => 'publish_stream,read_stream,offline_access,manage_pages',   
       'fbconnect' => 1,   
       'display' => "page",   
       'next' => 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']  
       );  
      $login_url = $facebook->getLoginUrl($login_url_params); 
      header("Location: {$login_url}"); 
      exit(); 
      } 
     } 
     //Access permission 

     $post_id = $facebook->api("/$uid/feed", "post", array("message"=>"Hello World!")); 
     if(isset($post_id)) 
     { 
      echo "A new post to your wall has been posted with id: $post_id"; 
     } 
    } 
    catch (FacebookApiException $e) 
    { 
     echo($e); 
    } 
?> 

ある問題は、それが致命的なエラーのような実行時エラーを示すことです。私はAccess Tockenを生成しました。あなたは、最新のを使用していない場合にも、あなたのSDKをアップグレードしてみてください

$me = $facebook->api('/'.$uid); 

$me = $facebook->api('/me'); 

:私は、事前

+0

_ _ - あなたを行なったし、_when_それを作成しますか?既に期限切れのトークンを使用しているようです。デバッグツールを使用して、トークンが有効かどうかを確認することができます。https://developers.facebook.com/tools/debug – CBroe

+1

これは、$ facebook-> getUser()が0を返し、ユーザーがログイン。 –

答えて

32

で おかげでラインを変更してみてください、この例外を削除するためにそれを使用する必要がある場合あなたがバージョンをダウングレードしてチェックするよりも、sdkをアップグレードしただけで問題が発生した場合は、確認してください。

+1

/meとは対照的にこれが動作する理由は何ですか? – Mike

+0

わかりませんが、それは私のために働いた... – happyhardik

+5

まあ、これはFacebookです!最大の問題は、このエラーが他の多くの問題によっても引き起こされる可能性があることです。 –

5

クリアキャッシュ&クッキー と は次のように行ってください(アプリケーションのテストや開発している場合): - 「私はアクセスTockenを生成している。」

try 
{ 
    $fb_user_info = $facebook->api('/me'); 
} catch (Exception $ex) 
{ 
    $facebook->destroySession(); 
    $params = array(
     'scope' => 'YOUR_PERMISSIONS', 
     'redirect_uri' => 'YOUR_SITE_URL' 
); 
    $fb_login_url = $facebook->getLoginUrl($params); 
    header("Location:" . $fb_login_url); 
} 
+0

* sidenote:* 'header( 'Location:$ url');' – Raptor

+1

の後に 'exit;あなたのサイドノートでは、それはheader( 'Location:'。$ url);にする必要があります。一重引用符で変数を使用することはできません。二重引用符で囲む必要があります。 –

+0

はい。それは愚かなタイプミスです。思い出してくれてありがとう。 (しかし、編集することはできません) – Raptor

関連する問題

 関連する問題