2011-10-10 30 views
0

我正在使用Facebook PHP SDK並嘗試將圖像發佈到用戶的牆上。但我得到錯誤如下:圖形API - 訪問令牌(致命錯誤:未捕獲OAuthException:必須使用活動訪問令牌來查詢有關當前用戶的信息。)

"Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in C:\developing...\base_facebook.php on line 1033"

據我所知,我的訪問令牌是無效的,但我不明白爲什麼。我有全球的facebook對象,我在我的網站的子網站(不同的網址,我原先要求訪問令牌)使用$ facebook-> api函數。我的問題是,我需要爲我的子網站使用新的訪問令牌嗎?基本上,這意味着我需要新的應用程序密鑰和密碼,因爲Facebook只允許重定向到開發人員站點中的一個頁面。

下面是很基本的API調用:

$upload_photo = $this->facebook->api('/me/photos?access_token='. $this->facebook->getAccessToken(), 'post', $photo_details);

+0

**不同的**網址或子網域?您是否還嘗試將不同的域添加到您的「應用域」字段?檢查這[後](https://developers.facebook.com/blog/post/570/) – ifaour

+0

感謝您的意見。該博文看起來很有幫助。我在「mydomain/users」中獲取了我的訪問令牌,但是我想在「mydomain/subdomain」中連接圖api。我嘗試將不同的域添加到應用程序域,但不知何故它不起作用(當我試圖添加和按下輸入時,我的域名從域中消失)。 –

+0

我注意到我可以添加普通域,但不能添加本地域。顯然有某種URL檢查器。 –

回答

0

我不是100%肯定,但我認爲這個問題是不是域相關。當你調用

$this->facebook->getAccessToken(); 

這可能給你帶來一個用戶訪問令牌,併爲您正在使用的Facebook應用程序的訪問令牌。要在用戶的牆上發佈信息,您需要爲用戶(或網頁)提供訪問令牌,代表您要發佈該信息。

如果使用的令牌是正確的,那麼另一個原因可能是,您的應用程序沒有發佈牆所需的權限。您的應用需要extended permissions,如「publish_stream」權限。

也許本教程還可以幫助您: http://thinkdiff.net/facebook/php-sdk-3-0-graph-api-base-facebook-connect-tutorial/

它說明了如何生成一個FB-登錄鏈接,並要求擴大權限。

相關問題