2014-07-07 60 views
1

我從Facebook頁面獲取代碼以將照片發佈到用戶的牆上(帳戶)。使用圖形API向Facebook發佈圖像[已解決]

下面是我PostToFB.php文件:

<?php 
    include_once "facebook.php"; 
    ini_set("display_errors",0); 

    //configuring application to post. 
    $app_id = "YOUR_APP_ID"; 
    $app_secret = "YOUR_APP_SECRET"; 
    $post_login_url = "YOUR_REDIRECT_URL"; 

    $code = $_REQUEST["code"]; 

    //Obtain the access_token with publish_stream permission 
    if(empty($code)){ 
     $dialog_url= "http://www.facebook.com/dialog/oauth?" 
       . "client_id=" . $app_id 
       . "&redirect_uri=" . urlencode($post_login_url) 
       . "&scope=publish_stream"; 
     echo("<script>top.location.href='" . $dialog_url 
       . "'</script>"); 
    } 
    else { 
     $token_url="https://graph.facebook.com/oauth/access_token?" 
       . "client_id=" . $app_id 
       . "&redirect_uri=" . urlencode($post_login_url) 
       . "&client_secret=" . $app_secret 
       . "&code=" . $code; 
     $response = file_get_contents($token_url); 
     $params = null; 
     parse_str($response, $params); 
     $access_token = $params['access_token']; 

     // Show photo upload form to user and post to the Graph URL 
     $graph_url= "https://graph.facebook.com/me/photos?" 
       . "access_token=" .$access_token; 

     echo '<html><body>'; 
     echo '<form enctype="multipart/form-data" action="' 
       .$graph_url .' "method="POST">'; 
     echo 'Please choose a photo: '; 
     echo '<input name="source" type="file"><br/><br/>'; 
     echo '<input type="submit" value="Upload"/><br/>'; 
     echo '</form>'; 
     echo '</body></html>'; 
    } 
?> 

但是,這是行不通的。我得到下面輸出:

{ 
    "error": { 
     "message": "(#200) Permissions error", 
     "type": "OAuthException", 
     "code": 200 
    } 
} 

你能幫我解決這個問題嗎?

謝謝,

+0

這工作對我很好。您是否使用管理員帳戶使用此功能? –

+0

是使用我創建應用的帳戶。 –

+0

@SahilMittal你對我的問題有任何解決方案嗎? 我無法找到問題... –

回答

1

此代碼工作絕對好。在我看來,只有可能的原因是您沒有授予照片上傳許可。檢查哪些權限,您從這裏授予您的應用程序:https://www.facebook.com/settings?tab=applications

enter image description here

如果仍然didnt幫助,您可以創建一個新的應用程序,然後再試一次;因爲這段代碼是正確的。

編輯:

publish_stream已過時,請嘗試使用publish_actions

+0

嗨@sahilMittal嗨,你是對的... 在我的設置選項卡上只有「你的公開個人資料」和「你的照片」是didplaying ... 但我要求代碼中的用戶權限(publich_stream)... 並且該權限未顯示在「添加此提交內容」按鈕下的狀態和查看標籤中... 有什麼可以幫助我嗎? –

+0

我也試圖創建一個新的應用程序並運行代碼... 但我仍然失敗... –

+0

當您創建新的應用程序,然後授予權限,您是否看到我已粘貼的屏幕截圖 –

相關問題