2012-02-03 10 views
4

私は、ユーザープロファイルに画像をアップロードするアプリケーションがいくつかあります。数時間前に、すべてのアプリケーションが正常に動作したが、アップロードが要求されたとき、今、それは私が画像を公開するには、次のコードを使用していFacebook OAuthException:(#1)

Fatal error: Uncaught OAuthException: (#1) An unknown error occurred thrown in  applications/fb-sdk/facebook.php on line 543 

このエラーになります。

$FILE = "images/$image"; 

$args = array('message' => 'My msg '); 
$args['image'] = '@' . realpath($FILE); 

$data = $facebook->api('/'.$uid.'/photos', 'post', $args); 

ポリシーの変更や新機能のためですか?

アップロードのようにすべてのアクセス許可がtrueに設定されており、アプリケーションはファイルをアップロードする権限を持ちます。

P.s:アプリケーションが2回目に使用されたときに正常に動作します。

+0

断続的に同じ問題が発生していますが、原因を突き止めるのに苦労しています。 – Tom

答えて

2

ユーザーがログインしていて、壁に投稿する権限があるかどうかを確認する必要があります。私たちはTRY/CATCHを使ってユーザーに電話をかけてそれを行います。

$userId = $facebook -> getUser(); 

if ($userId) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
     $userId = NULL; 
     error_log($e); 
    } 
} 

$app_permissions = array(
    'scope' => 'publish_stream' 
); 

$logoutUrl = $facebook->getLogoutUrl(); 
$loginUrl = $facebook->getLoginUrl($app_permissions); 

ユーザーがログインしていないか、またはアプリを承認している場合は、リダイレクトまたはリンクしてヘッダを経由して、彼をリダイレクトする必要があります。

if ($userId){ 
    //Then you can call the facebook api 
    $data = $facebook->api('/'.$uid.'/photos', 'post', $args); 
    //... ... 
} 

これは私が見つけた最も簡単な方法です。

EDIT:スタック上のこの質問は私を助けている:Facebook PHP SDK Upload Photos

1

をなし、システムによってエラーが発生しているが、画像ファイルを取得することはできません。 Facebookは、空の画像フィールドがAPIに表示されることを許可しません。だから、致命的なエラーを返します:未知OAuthException:(#1)--- OAuthとOAuthExceptionには関係しませんが。

関連する問題