1

最近、新しいアプリを立ち上げましたが、その機能の 1 つは、ユーザーが特定のページを気に入った場合に割引を提供することでした。多数のアカウントで機能のテストに成功し、ローンチを進めました。グラフ API を使用して、彼らが気に入ったすべてのページのリストを取得し、目的のページがそこにあるかどうかを確認しました。

https://graph.facebook.com/me/likes?access_token=ACCESS_TOKEN

一部のユーザーから、ページを気に入ったにもかかわらず割引が表示されないという連絡がありました。それらのアカウントの 1 つの詳細を要求することができ、次のことがわかりました。

アプリが承認されると、Facebook は、HTTP 要求 (グラフ API 呼び出し用にプルする) のアクセス トークンを使用して、アプリを Web サイトに送信します。

https://example.com/?ref=ts

POST /?ref=ts HTTP/1.1
...
Set-Cookie: fbs_uid=%22uid3D%26access_token%3[ACCESS_TOKEN_REMOVED]%26expires%3D1318381200%26sig%3Dd0b6fdf09befedf022cdea8b58887348%22; expires=Wed, 12-Oct-2011 01:00:00 GMT; path=/

そこにアクセストークンが表示されます。奇妙なことに、Facebook から提供されたアクセス トークンを使用して API 呼び出しを実行しようとすると、空の結果が返されます (ユーザーがページを気に入ったにもかかわらず) 。これは特定のアカウントのみです。さらにややこしいのは、同じセッション (https://developers.facebook.com/docs/reference/api/) としてログインしているときに Facebook 開発者ページに移動し、/me/likes リンクをクリックすると、ユーザーのいいねの完全なリストですが、アクセス トークンが異なります。

そのため、Facebook に提供された取得済みアクセスは、データをプルするには不十分であると思われます。これは特定のアカウントにのみ影響し、他のアカウントには影響しないため、何らかの構成の問題があるのではないかと考えていますが、Facebook から提供されたデータが正しくないように見えるため、私が立っているところからそれを解決する方法がわかりません。

Facebook から提供されたアクセス トークンを使用すると、エラーは発生しません (つまり、「アクセス トークンの検証エラー」は発生しません)。そのため、アクセス トークンは検証されます。

4

1 に答える 1

1

機能していないアクセス トークンをリントし、それについて Facebook が何を言おうとしているのかを確認してください。何が間違っているかについての手がかりを与えるかもしれません。

https://developers.facebook.com/tools/lint

于 2012-01-06T07:21:51.517 に答える