まず第一に、誰かが開いているグラフオブジェクトタイプが階層を形成していることを確認できますか?つまり、すべてmovie
のavideo
とすべてvideo
のobject
?
私が尋ねている理由は、like
アクションタイプはobject
アプリダッシュボードでのオブジェクトタイプの定義のみをサポートしているため、オブジェクトをタイプとして定義すると、そのオブジェクトを高く評価movie
できるでしょうか?私がドキュメンテーションから集めることができることから、それは確かに事実であるはずです、しかしそれはどこにも明確に述べられていません。
ユーザーに代わってURLを高く評価しようとしたときにエラーが発生したため、これに遭遇しました。いいねされたオブジェクトインスタンスは、og:type
として定義されていmovie
ます。返されるエラーは次のとおりです。
{"error":{"message":"(#100) Like actions are not yet supported against objects of this type.","type":"OAuthException","code":100}}
私はいくつかのことを試しましたが、本当に紛らわしい結果が得られました。
og:type
パラメータをに変更してみましたobject
。同じエラーが発生しました。og:type
パラメータをに変更してみましたwebsite
。同じエラーが発生しました。og:type
パラメータをに変更してみましたvideo
。同じエラーが発生しました。- オブジェクトとして渡されるURLのidクエリパラメータをlikeに変更してみました。これにより、サーバー上のWebアプリは、idによって参照されるオブジェクトを検出できず、メタタグをレンダリングしません。デバッガーによると、タイプは「website」として暗黙的に決定されます。これは、アクションインスタンスのIDを取得するという意味で機能し、同じリクエストを再試行すると、接続がすでに存在するというエラーがスローされます。ただし、ニュースフィードにもユーザープロファイルの「いいね」にも何も表示されません。正常に接続を削除できます。
- DNSで解決できないURLを入力してみました。デバッガーは、情報を取得できないと言っています。それ以外の場合は、ケース4と同じようになります。
私のセットアップに関するいくつかの詳細:
Like
アプリは、アクションタイプObject
とVideo
オブジェクトタイプを公開するように構成されています。- 私のアプリは他の場所でセルフホストされており、Facebookページは必要ないため、キャンバスURLを定義していません。
- アクションタイプは承認の
Like
ために送信されていませんが、アプリで送信されていないアクションタイプを実行する役割を持つユーザーからの有効なアクセストークンを使用してリクエストを実行しています。 - アクセストークンは、ユーザーがクライアント側の認証フローを介して認証されたときに受信した短期間のアクセストークンを交換することによって取得される、長期的なものです。
- 公開されたアクションタイプとオブジェクトタイプが定義された後、ユーザーは認証されました。
- すべてのテストは、私のマシンのOpen Graph ExplorerとFiddlerの両方から実行され、パラメーター(
object
およびaccess_token
)がurlencodedされています。 - 同様のソーシャルプラグインを使用している場合、すべてが期待どおりに機能します。
[おそらくこの質問の複製]