OpenGraphの実装を機能させるのにいくつかの問題が発生しています。
私の知る限り、正しいメタタグが存在します。URLをOpenGraphDebuggerに貼り付けると、適切な情報(タイトル、説明、画像など)が定義された状態で返され、エラーは発生しません。
FacebookPHPSDKのバージョン3.1.1を使用しています。
開発アプリでOpenGraphを有効にしていて、アクション(read
)とオブジェクト(article
)を定義しています。
問題の実装はWebサイトであり、Facebookアプリケーションではありません。Facebookでは、アプリの「カテゴリ」は「その他」です。別のスレッドでいくつかのアドバイスに従い、それを「ゲーム」に変更しましたが、機能しませんでした。そのため、元に戻しました。
私は自分のWebアプリユーザーをFacebookで認証し、コードを受け取ります。コードはaccess_token
、かなり標準的なものと交換します。次の許可を求めます。
publish_stream
publish_actions
offline_access
ただし、アクションを公開するために呼び出しを行おうとすると、OAuthExceptionが発生し、実際にデバッグする方法がありません。
いくつかの奇妙な点:
- グラフAPIは、ドキュメントで指定されているURL形式を好まないようです
me/[app_namespace]:[action_type]
。私の場合、これme/' . FB_APP_NAMESPACE . ':read
は次のようになります。ここで、FB_APP_NAMESPACEは、Facebookアプリケーション設定で定義された名前空間として以前に定義されています。APIとGraphAPIExplorerの両方が、指定されたアクションを理解していないことを示すエラーをスローします。名前空間をアクションとして読み取ろうとしているようです。 og:type
URLから名前空間を削除すると、渡されたアクションがURLで定義されたものと一致しないことが報告さog:type
れます。これは、URLに削除した名前空間が含まれているためです。- その名前空間をメタタグから削除して再試行すると、デバッグできない一般的なOAuthExceptionが発生します。
- Facebookアプリで提供されているコードサンプルを見ると、アクション
news.reads
は単なるではなく、のようread
です。 - そのアクションを使用すると、グラフAPIは、開いているグラフを使用するためにIDが許可されていないというエラーを返します。これは、アプリケーションの管理者、開発者、またはテスターではないためです。残念ながら、私はアプリの作成者です。つまり、グラフAPIが嘘をついているか、自分自身に嘘をついています。
解決策は非常に単純だと思います。おそらく、何かを忘れたか、特定のカテゴリを誤って選択した可能性があります。いずれにせよ、控えめに言っても、これは少しイライラします!