2

新しく更新された Facebook SDK for Android を使用するように切り替えました。

上記のメッセージは、新しい共有ダイアログを使用しようとしたときに FacebookException クラスで表示されました。

これが起こる理由は何ですか?

これが私が使用しているコードです。

OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
            action.setProperty("object", "http://object.url");

FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "appnamespace.action", "object")
                    .build();
uiHelper.trackPendingDialogCall(shareDialog.present());
4

2 に答える 2

4

何時間もの試行錯誤の末、私はついにこれを理解しました。もっとシンプルになればいいのに。Facebook はコード ジェネレーターを提供する必要があります。

とにかく、私の問題の解決策は、アクションワードがFacebookが設定したものと完全に一致する必要があるということです. これを確認する唯一の方法は、型のグラフ コード ジェネレーターを開くことです。

https://developers.facebook.com/apps/ {app-id}/opengraph/types

上記のリンクのアクション タイプ セクションで見つけることができます。

ここで、facebook が提供する名前空間とアクション タイプを取得し、以下の「appnamespace:action」に置き換えます。

OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
        action.setProperty("object", "http://object.url");

FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "appnamespace.action", "object")
                .build();
uiHelper.trackPendingDialogCall(shareDialog.present());
于 2013-09-10T10:52:55.410 に答える
0

この問題は、コンストラクターの " previewPropertyName" フィールドに関連していると思います。OpenGraphActionDialogBuilder

new FacebookDialog.OpenGraphActionDialogBuilder(Activity activity, OpenGraphAction action, String previewPropertyName)

これは、それ自体を指すアクション内のプロパティの名前と一致する必要がありOpenGraphObjectます。例

action.setProperty("previewPropertyName", openGraphObject);
于 2013-12-19T10:31:39.510 に答える