はのキャンバスアプリのために次のような状況を想定してみましょう:canvasアプリケーションでsigned_requestでaccess_tokenを取得するにはどうすればいいですか?
i)は1日目: - Facebookアプリは read_stream,publish_stream,offline_access
権限を必要とする作成されます。 ユーザーが最初にアプリに来ると、authorize
コールはユーザ を許可/拒否の許可にリダイレクトし、ユーザが許可すると、 はユーザをキャンバスのURLにリダイレクトします。
キャンバスのURLは、その要求の というパラメータで署名付きリクエストでaccess_tokenを持っており、このパラメータを使用してアプリを実行できます。 signed_requestは、ユーザーが が過去にアプリを承認していた場合acess_token含まれているよう
ませ許可ダイアログは、アプリの次 時間に来て、同じユーザーのために必要ありません。さて、私は私のリストへの1つの以上のアクセス許可、user_birthday
read_stream、publish_stream、offline_access、user_birthday` 今すぐ次を追加したいとしましょう - :
if(access_token received from signed request)
// do something with user information
else
// redirect user for authorization flow
II)一日2:
コードは次のようになりますロジックは、API呼び出しがアプリのパフォーマンスに影響を与える としてどのようにこの追加の権限の追加は、効率的に取り組むことができますか?問題
if(access_token received from signed request)
// do something with user information <-- the access_token does not have new permission
else
// redirect user for authorization flow
を持っていますかトークンに関連する権限を確認するたびに
https://graph.facebook.com/me/permissions?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
アプリケーションの負荷を: 私のようなものを使用したいとは思わないでしょう。
UPDATE: ストア、それを受信したとaccess_tokenは一緒に権限セット:
良い方法を共有します。例えば、 。現在の権限がある場合は、新しい許可を求める必要がある時はいつでも、あなたの設定で、今
user | access_token | perm_set
Dhruv sdfsdfsdf 1
として設定access_tokenはと許可、 ストア(1それを呼び出すことができます)「basic_details-誕生日・公開」、作成
アクセス許可トークンがperm_set = 1で、既に所有しているユーザーではないユーザーのアクセス許可ダイアログを表示する必要があります(新しいアクセス許可を "basic_details-birthday-publish-checkins" perm_set = 2なら、これは "/ me/permissions" APIを使って各ユーザのaccess_tokenをチェックする必要性を取り除きます。
Dhruvは、彼はその特定のチェックをしたくないと言いました。 – DMCS
そのように思っていますが、その答えがあなたの回答にも含まれています。 –
笑、ちょうどそれが最善の方法であることを繰り返す。あなたが見ることができるように、私は自分の3人のうちの1人が彼が彼がしたくないと言った人だと言った。 :) – DMCS