7

今すぐ修正!しかし、私はまだ自分の質問に答えることができません。以下の私のコメントを参照してください。そして助けてくれてありがとう。


ドキュメントを検索して検索して読んだのですが、まだこれを理解できません。

イベントに関する Web ページがあります。私のイベント用の公開 Facebook "イベント" もあります。FB Javascript SDK を使用して Facebook イベントの参加者数を取得し、それを Web サイトから登録した人数に追加しようとしています。

アプリを作成し、appID と秘密の文字列を持っています。アクセス トークンは次の場所から取得できます。

https://graph.facebook.com/oauth/access_token?client_id=XXXX&client_secret=XXXXX&grant_type=client_credentials

そして、そのアクセス トークンを使用して、公開イベントの出席者を取得できます。

https://graph.facebook.com/331218348435/attending?access_token=XXXXXXXXX

それは大丈夫です。

私は今、Javascript SDK を使用してこれと同じことをしようとしています。

SDK をロードし、init を実行しました。

FB.init({
  appId  : 'XXXXXXXX',
  status : true, // check login status
  cookie : true, // enable cookies to allow the server to access the session
  xfbml  : true  // parse XFBML
});

アクセス トークンを必要としないデータを含むオブジェクトを取得できるため、SDK が機能していることはわかっています。

FB.api( '/331218348435', function (response) { console.log ( response ) } );

しかし、アクセストークンが必要な出席者データを取得しようとすると:

FB.api( '/331218348435/attending', function (response) { console.log ( response ) } );

「このリソースをリクエストするには、アクセス トークンが必要です」という OAuthException が発生します。

私が見つけることができるすべてのチュートリアルと情報は、.login メソッドを使用することを参照していますが、ユーザーにログインさせたくないので、ユーザーの操作なしでアプリ ID を使用してログインしたいと考えています。

私は、API が SDK の init リクエストを受け取り、.init メソッドを呼び出したときにアクセス トークンを許可したと想定していました。認証は、私の Web サイトのアドレス (HTTP リファラー - はい、Facebook アプリで Web サイトの URL を設定しました) に対して行われます。設定)。

これが機能しない原因となっている可能性のあるアイデアはありますか? .login を実行せずに Javascript SDK を使用してアクセス トークンを取得するにはどうすればよいですか? 手順がありませんか?これは可能ですか?

ありがとう

4

2 に答える 2

3

かなり循環的なドキュメントが言うことを形成し、出席フィードを取得するには'genericaccess_token`が必要です。Facebookの用語で:

有効なaccess_tokenAPI によって返される有効なアクセストークン。アクセストークンは、たとえば、有効期限が切れている場合は無効になる可能性があります。特別な権限は必要ありません。場合によっては、これは汎用access_tokenと呼ばれます。

つまり、イベントが公開されている限り、参加フィードにアクセスするために任意のトークンを使用できることを意味します。取得するのが最も簡単なアクセストークンは、アプリトークンのようです:http://developers.facebook.com/docs/authentication/#applogin。このトークンは、アプリIDとシークレットのみを使用して取得でき、ユーザーの操作は必要ありません。

リンクコンテンツを要約するには:GETリクエストをに送信することでアプリケーションアクセストークンを取得できます

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials 

次に、そのaccess_tokenを使用して、出席リストに電話をかけることができます。

FB.api('MyEvent/attending?access_token=ACCESS_TOKEN');
于 2011-07-08T17:54:08.747 に答える
1

おー。わかった。

なんらかの理由で、私は出かけて夕食をとり、戻ってきたときは正常に機能しています.

アプリの設定を更新したとき、Facebook は変更がサーバーを回避するのに数分かかるかもしれないと言いました。1時間以上かかることが判明!

私のコードは大丈夫でした。

ご協力いただきありがとうございます。

于 2011-07-09T08:31:36.510 に答える