4

私たちはゲームを作っています。そのゲームでは、1)プライベートグループの壁にあるすべてのメッセージを取得する必要があります。2)前回チェックしてからの新しいメッセージを解析します。3)その他の関連性のないもの。

私はすでにそれを書きました、問題は私のアクセストークンが時々期限切れになることです。Pythonスクリプトから新しいアクセストークンを取得するにはどうすればよいですか?このPythonスクリプトは数週間実行され、夜中に起きて、そのグループの壁を読み取るためのアクセス許可を付与するダイアログをクリックすることができません。

また、ここでこのPythonコードを見つけ、それを使用してアクセストークンを取得しようとしましたが、oauth_argsについてはわかりません。

def grabAccessToken ():
  print "grabbing access token..."
  oauth_args = dict(
    client_id     = "000000000000000",
    client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    redirect_uri  = 'http://domain.com/',
    scope         = "user_groups"
  )
  oauth_curl_cmd = [
    'curl',
    'https://graph.facebook.com/oauth/access_token?' + urllib.urlencode(oauth_args)
  ]
  oauth_response = subprocess.Popen(
    oauth_curl_cmd,
    stdout = subprocess.PIPE,
    stderr = subprocess.PIPE
  ).communicate()[0]

  print oauth_response
  try:
      oauth_access_token = urlparse.parse_qs(str(oauth_response))['access_token'][0]
      print "got access token: "+oauth_access_token
      return(oauth_access_token)
  except KeyError:
      return('ENOTOKEN')

「{"エラー":{"メッセージ": "認証コードがありません"、 "タイプ": "OAuthException"、 "コード":1}}」と応答し続けます

つまり、スタンドアロンのPythonスクリプトがFacebookのグループウォールを長時間読み続けるにはどうすればよいでしょうか。

4

1 に答える 1

4

要するに: スタンドアローンの Python スクリプトが Facebook のグループ ウォールを長時間読み続けるにはどうすればよいでしょうか?

ユーザーの操作なしで新しいアクセス トークンを取得することはできません。これこそが、offline_access を非推奨にする要点です。

そのため、既存のトークンの有効期限が切れたときに新しいトークンを取得するには、アプリに再度アクセスする必要があります。

有効期限の長いアクセス トークンその有効期限をデータベースに保存し、その有効期限が近づいている場合はアプリからバックグラウンドでメールを送信することをお勧めします。数日前、1 週間または 2 週間前など、適切と思われる期間を選択してください。

于 2012-07-06T08:16:13.110 に答える