2013-12-23 106 views
0

我有一個可以正常工作的Facebook應用程序,當我撥打$facebook->api('/me')時,它會返回所有的用戶信息,但當我撥打$facebook->api('/100006737731259')時,它會失敗。我得到的錯誤是:Facebook API失敗,Graph工作。爲什麼?

array("error" => array("message" => "Unsupported get request.", "type" => "GraphMethodException", "code" => 100)) 

而且奇怪的是,如果我打開瀏覽器,進入http://graph.facebook.com/100006737731259它返回所有沒有問題(這是我的應用程序一個測試用戶)的信息。

你有過這樣的問題嗎?我不知道我能做什麼錯。

非常感謝您

+0

你使用什麼SDK? –

+0

我使用Facebook的PHP SDK v3.2.2 –

+0

順便說一句,非常非常,它經常正常工作。這是一件很奇怪的事情。 –

回答

0

當爲測試用戶調用此API時,可以放置空的訪問令牌或者根本不放置access_token參數,然後就可以解決它。

如果你真的想放的access_token,還有你必須遵循的規則:

禁止的access_token:

  1. 普通用戶的訪問令牌

  2. 其他應用程序的測試用戶訪問令牌

  3. 其他應用訪問令牌

允許的access_token:無論是測試用戶當前的應用程序的其他測試用戶或該測試用戶100006737731259,既允許

  1. 測試用戶的訪問令牌()從https://graph.facebook.com/APP_ID/accounts/test-users?installed=true&name=TEST_USER_NAME&locale=en_US&permissions=read_stream&method=post&access_token=APP_ACCESS_TOKEN檢索(更換相關APP_ID,TEST_USER_NAME和APP_ACCESS_TOKEN)

  2. 當前應用程序訪問令牌

    * APP_ACCESS_TOKEN可以從https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=client_credentials檢索(更換相關APP_SECRET)

    **應用程式密鑰可以從https://developers.facebook.com/x/apps/APP_ID/settings/得到(更換相關APP_ID)

證據是,如果你與其他用戶的訪問令牌請求,https://graph.facebook.com/100006737731259?access_token=PROHIBITED_ACCESS_TOKEN在網頁瀏覽器,你最終會得到錯誤。

但是,如果您使用網絡瀏覽器執行https://graph.facebook.com/100006737731259?access_token=Allowed_ACCESS_TOKENhttps://graph.facebook.com/100006737731259?access_token=(將access_token值留空),則可以獲取數據。

+0

你說得對。無論如何,我認爲Facebook SDK應該可以和測試用戶一起工作,因爲我們不得不爲測試用戶調用沒有訪問令牌的API,並且爲了生產而使用允許的訪問令牌。 –

0

這是隻與測試用戶出現問題。我不知道爲什麼,但它是。如果你使用真實的用戶,這不會發生。

+0

謝謝你的回答。有什麼方法可以解決它? –