2011-02-05 15 views
5

this urlに、FacebookはFacebook Connectを使用して認証する方法を説明しています。一例としてのFacebookへHTTPリダイレクトなしで新しい「認証コード」を取得するにはどうすればよいですか?

  1. リダイレクト:

    基本的には、手順は次のとおりです。その結果、私はaccess_tokenは

    https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&client_secret=YOUR_APP_SECRET&code=THE_CODE_FROM_ABOVE 
    
    を求め、

    https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream 
    
  2. は以下のアドレスへのHTTPポストを行います認証コードを取得します

Facebookは最後にお答えします

access_tokenのHTTPポスト。ファイン。


access_tokenはは、上記受信した有効期限が切れます。引き続き有効な秒数がaccess_tokenとともに返されます。 OK。

問題は次のとおりです。有効期限が切れたらどうすればよいですか? Facebookのoficialウェブサイトから

:トークンの有効期限が切れるまでのアクセストークン(access_tokenはパラメータ)に加えて

、応答が(パラメータを有効期限が切れる)の秒数が含まれています。トークンが期限切れになったら、上記の手順を再実行して新しいコードとアクセストークンを生成する必要があります

待ち時間!新しい認証コードを取得するには、(手順1)にリダイレクトする必要があるため、上記の手順を再実行することはできません。私はリダイレクトしたくありません。 Webサービスを通じて新しい認証コードを取得したい。ユーザーは既に自分のアプリケーションを承認しています。私は再び彼または彼女をリダイレクトする機会はありません。

どうすればよいですか?

PS:論理的に考えると、私はaccess_tokenが期限切れになった後に新しい認証コードを取得する必要はありません。新しいaccess_tokenで十分です。しかし、私が示したように、facebookは認証コードも期限切れと言います。

+0

を参照してください私は思います質問が である必要があります。「HTTPリダイレクトなしで新しいアクセストークンを取得するにはどうすればよいですか? 「認証コード」ではなく「アクセストークン」 – Carmela

答えて

2

"offline_access"アクセス許可を使用します。これにより、トークンを長期間使用することができます。アクセス許可ページ:http://developers.facebook.com/docs/authentication/permissions/を参照してください。

+5

「offline_access」権限は廃止予定であり、2012年5月に削除される予定です。 –

+1

@SteveTaylorこの問題で何ができるか考えてみると、offline_accessが本当に廃止されましたか? –

0

offline_accessを削除したので、Facebookは既存の短命トークンの期限を延長する手段を提供しました。

ただ、次のリクエストます

https://graph.facebook.com/oauth/access_token?    
    client_id=APP_ID& 
    client_secret=APP_SECRET& 
    grant_type=fb_exchange_token& 
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

そして、長寿命のアクセストークンの有効期限に関する詳細情報については、

Currently the long-lived user access_token will be valid for 60 days while the 
short-lived user access_tokens are currently valid from 1 to 2 hours. 

を、https://developers.facebook.com/roadmap/offline-access-removal/

関連する問題