2014-07-23 64 views
-1

我寫了一個python腳本,運行在我服務器上的cron作業上,使用我自己的facebook應用程序發佈到我的facebook帳戶。不幸的是,每隔幾個月,我得到:Facebook auto-reauth

Response: {u'error': {u'message': u'Error validating access token: Session has expired...', u'code': 190, u'type': u'OAuthException', u'error_subcode': 463}} 

發生這種情況每次,我都登錄到Facebook上,得到一個新的代碼 - >訪問令牌。

我想完全自動化,這樣我就可以得到一個新的訪問令牌,而無需登錄到Facebook。什麼是最好的方法來做到這一點?

我更喜歡一種方法來做到這一點,而無需在我的服務器上存儲我的密碼或通過curl訪問Facebook(這將是一個黑客),但 - 最糟糕的是最糟糕的 - 我想我可以登錄Facebook用curl來獲取代碼 - >訪問令牌。

請不要告訴我使用offline_access(因爲我的大部分搜索都顯示)。這已被棄用。

TIA!

編輯:這裏是如何我目前正在重新授權(這需要我登錄到Facebook的):

  1. 登錄到Facebook在瀏覽器中
  2. 的訪問,瀏覽器:從返回https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=publish_actions
  3. 提取$代碼Facebook的
  4. 捲曲 「https://graph.facebook.com/oauth/access_token?client_id=XXX&redirect_uri=https://www.facebook.com/connect/login_success.html&client_secret=YYY&code= $代碼」
  5. 商店更新的access_token這與Facebook的返回

回答

2

這正是它應該如此。沒有辦法(現在)獲得永久有效的用戶訪問令牌。沒有應用程序應該被允許使用60天內未打開該應用程序的用戶的令牌。

一個解決方案是創建Facebook頁面並使用擴展頁面訪問令牌,因爲這些令牌永遠有效。這裏有幾個與你需要的所有信息鏈接:

+0

謝謝,但我不想更新Facebook頁面。我知道這不是由Facebook支持,但我敢肯定有人已經找到了解決方法。 什麼是從服務器登錄Facebook帳戶的最佳方式?捲曲?那麼[fbcmd](http://fbcmd.dtompkins.com/)?有沒有其他的選項可以讓無頭的服務器登錄到我不知道的Facebook? – user3870134

+1

如果存在解決方法,那麼它是100%非法的,並且應該向Facebook報告爲安全問題;) - 否則對短生存權限的整體變更將幾乎無效。 – luschn

相關問題