「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > v2.2 から v2.3 に移行した後に Facebook Graph API が失敗するのはなぜですか?

v2.2 から v2.3 に移行した後に Facebook Graph API が失敗するのはなぜですか?

2024 年 12 月 22 日に公開
ブラウズ:826

Why is My Facebook Graph API Failing After Migrating from v2.2 to v2.3?

v2.2 から v2.3 への移行後に Facebook Graph API が機能しない

Facebook の Graph API を v2.3 にアップグレードすると、開発者は、特定の API リクエストがデータを返さないという問題に遭遇しました。この記事では、発生した特定の問題を調査し、最新バージョンの SDK で導入された変更に基づいた解決策を提供します。

問題の説明

開発者らは、API リクエストが以前にv2.2 では動作していましたが、v2.3 では結果が返されなくなりました。具体的には、次のリクエストが影響を受けます:

  • /me/albums withfields=albums
  • /me フィールドが指定されていない (ユーザーの誕生日の取得に使用されます)

解決策

この問題は、v2.3 で JSON 形式に加えられた変更に起因します。 OAuth アクセス トークン エンドポイントによって返される応答。 SDK バージョン 3.2.2 では、getAccessTokenFromCode() 関数が JSON 応答をオブジェクトではなく配列として誤って解析し、その結果、誤ったユーザー アクセス トークンが取得されます。

この問題を解決するには、getAccessTokenFromCode( ) JSON 応答を正しく解析するには関数を更新する必要があります:

$response = json_decode($access_token_response);
if (!isset($response->access_token)) {
  return false;
}
return $response->access_token;

拡張アクセス トークンの追加更新

拡張アクセス トークンを使用するアプリの場合、setExtendedAccessToken() 関数で同様の変更が必要です。

//Version 2.3 and up.
$response = json_decode($access_token_response);
if (!isset($response->access_token)) {
  return false;
}

$this->destroySession();

$this->setPersistentData(
  'access_token', $response->access_token
);

結論

JSON 応答解析における前述の変更に対処することで、開発者は API リクエストが Facebook の Graph API v2.3 で期待どおりに機能することを確認できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3