2013-10-08 138 views
2

有一個類似的問題在:Asking for permission using new PHP SDK (3.X.X),但不解決我的問題Facebook的PHP API「用戶未授權應用程序」

我的應用是Facebook標籤應用(論壇)的授權用戶FB要能夠發佈在論壇中,到目前爲止,這麼好,授權可以正常工作,現在我想擴展一下我的應用程序,以便訂閱一個線程的用戶,應用程序能夠在他們的時間線上發佈。

我想要測試的是:

require_once('./includes/facebook.php'); 
$facebook = new Facebook(array(
    'appId' => $CFG["appid"], 
    'secret' => $CFG["appsecret"], 
    'oauth' => true, 
    'scope' => 'status_update,publish_stream,publish_actions', 
    'cookie' => true 
)); 
$facebookid = ''; 
$facebookid = $facebook->getUser(); 
if (!empty($facebookid)) 
{ 
    $facebook_info = array(); 
    $facebook_info=$facebook->api('/me'); 
    $facebook->api('/me/feed', 'POST', 
           array(
            'link' => 'www.example.com', 
            'message' => 'Posting with the PHP SDK!' 
          )); 

}

但是,這給出了錯誤:致命錯誤:未捕獲OAuthException:(#200)用戶尚未授權應用程序執行此操作拋出/ home/facebook/public_html/demo/forum/includes/base_facebook。 1271線上的php

任何想法我做錯了什麼?請注意,我試圖在應用程序設置(developers.facebook.com)上添加相同的權限,但我再次沒有運氣。當然,我錯過了一些東西,但是這是什麼?

謝謝

+0

您是否已經將用戶重定向到Facebook,以便他們可以接受授予您的應用的權限? – Luke

+0

將您的代碼封裝在try {} catch(Exception $ e){} – Shushant

+0

範圍不是SDK初始化的參數,它是登錄流的參數。如果你不知道這些東西是如何工作的,請在文檔中閱讀它。 – CBroe

回答

0

base_facebook.php,與你真是代碼使用起來,讓我覺得你使用Facebook PHP-SDK庫。 publish_streampublish_actions現在是相同的東西,所以你可以跳過。 status_update我從未見過。要發佈狀態,您只需要publish_actions。 確保你使用的是更新後的庫(它們會不時更新),可以在github上下載。該庫給了我一個類似的錯誤,我無法弄清楚原因,所以我寫了自己的認證過程,這並不複雜。 現在,我想到的一點是,你必須檢查你所要求的權限,檢查用戶是否授權了應用程序(該庫使用getUser();),並檢查你是否擁有最新版本的庫。 如果一切都出錯了,請嘗試使用簡單的身份驗證URL並通過打印從API獲取的內容進行調試。此外,請嘗試確保回調網址始終相同。 我希望這可以幫助...

相關問題