2012-10-22 74 views
-1

可能重複:
How to access fb access token form server running program (python)只是對一個的access_token查詢

我做了一個應用程序,讓我登錄並存儲fbuid和一些其他的事情我只是測試一下。我已經開始製作一個php命令行程序,它也使用php-sdk作爲我的web應用程序。唯一的問題是,由於php命令行程序在瀏覽器之外運行,它無法訪問會話來獲取access_token,這使得程序爲getuser顯示0。我曾經想過,將access_token存儲在數據庫以及其他數據庫中,並從數據庫中獲取並設置它,然後程序應顯示用戶以及訪問Graph API。那麼如何檢查access_token是否被更改,如果我沒有通過web應用程序登錄,它不能更改access_token,因爲沒有auth與命令程序的交互。

感謝

回答

0

具有的access_token並不意味着PHP SDK可以自動從中提取出用戶ID。如果你想讓你的命令行腳本知道用戶,你必須先使用訪問令牌向/me發出請求。 (在此之後,的getUser仍然無法正常工作,但你知道用戶ID和可以把它在必要時爲您的API調用手動)

以及檢查有效性的access_token,看到https://developers.facebook.com/docs/howtos/login/debugging-access-tokens/#step1

+0

感謝您的。唯一的問題是,如果我在命令程序中進行檢查,那麼客戶端將無法在不通過Web應用程序的情況下授權新令牌。我想通過客戶端不需要與oauth進行交互,因爲用戶仍然會安裝應用程序。 – Paul

+0

然後讓命令行腳本發送一封電子郵件或其他什麼,在令牌過期前一段時間 - 讓用戶主動獲取新的令牌。或者,嘗試使用應用程序訪問令牌進行發佈(但是您必須已經知道要發佈的ID) - 據報道,如果應用程序仍被授予所需權限,則使用應用程序訪問令牌發佈仍然有效。 – CBroe

+0

對了,謝謝。我猜這是我需要的用戶訪問令牌,因爲我在命令程序中有一個令牌,但它的名稱爲「Uncaught OAuthException:必須使用活動訪問令牌來查詢有關當前用戶的信息。」 – Paul