2

Android アプリで AppLinks を機能させるのに非常に苦労しています。MyApp に電話します。アプリ リンクを既存のコンテンツに統合するための Facebook 開発者サイトのドキュメントに従いました。Facebook デバッグ ツール ( https://developers.facebook.com/tools/debug/og/object/ ) は、Web ページが正しくスクレイピングされていることを示し、アプリリンクの 3 つのメタ タグを示しています。

<meta property="al:android:app_name" content="MyApp" />
<meta property="al:android:package" content="com.myapp.android" />
<meta property="al:android:url" content="myapp://myapphost/myapppath" />

共有ダイアログを使用して Facebook に投稿する Open Graph Stories があります。これは、Facebook Debug Tool に入力したばかりの URL を共有します。これらの Open Graph ストーリーは、Facebook によってレビュー/承認されており、ニュース フィードに表示されます。クリックすると、ブラウザーの Facebook で、ストーリーに関連付けられた URL に移動します。クリックすると、Facebook for Android では、URI スキームを処理するアクティビティ (UriLoadingActivity) ではなく、MyApp の既定のアクティビティ (MainActivity) のみが開きます。プッシュ通知で使用しているため、URI スキームが機能することはわかっています。ユーザーが通知をクリックすると、UriLoadingActivity に移動します。

  <activity
        android:name="com.myapp.android.activity.UriLoadingActivity"
        android:parentActivityName="com.myapp.android.activity.MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.GET_CONTENT" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:host="myapphost"
                android:scheme="myapp" />
        </intent-filter>

        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapp.android.activity.MainActivity" />
    </activity> 

Facebook から渡された Intent データを確認するために MainActivity の onCreate() に Logs があります。そのため、referer_app_link バンドルに Facebook パッケージとアプリ名が表示されます。Open Graph Story に投稿した Web ページ URL を含む target_url も取得しますが、Web ページのメタ タグに提供した AppLink データが表示されません。

他の誰かが同様の問題を経験していますか?

更新: FB に投稿するために使用するコードは次のとおりです。

    private void shareToFacebook(Bitmap image) {

    if (FacebookDialog.canPresentOpenGraphActionDialog(
            getApplicationContext(),
            FacebookDialog.OpenGraphActionDialogFeature.OG_ACTION_DIALOG)) {

        OpenGraphObject myObject = OpenGraphObject.Factory
                .createForPost("myapp:object");
        myObject.setProperty("title", "My Title");

        myObject.setUrl(Constants.SHARE_URL);

        myObject.setProperty("description",
                        "Just Posting to the News Feed!");

        OpenGraphAction action = GraphObject.Factory
                .create(OpenGraphAction.class);
        action.setType("myapp:action");
        action.setProperty("object", myObject);

        List<Bitmap> images = new ArrayList<Bitmap>();
        images.add(image);

        FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(
                this, action, "object").setImageAttachmentsForObject(
                "object", images, false).build();
        uiHelper.trackPendingDialogCall(shareDialog.present());
    } 
}
4

1 に答える 1

0

申し訳ありませんが、返信に時間がかかりました。

オブジェクト API を使用して、ユーザー所有の OG オブジェクトを作成しています。その OG オブジェクトを App Link 対応にする場合、そのオブジェクト (myObject.setUrl) の URL は、App Link Hosting オブジェクトの canonical_url である必要があります (つまり、App Link Hosting API を使用して作成する必要があります)。適切にマージされないため、独自の URL を使用することはできません。これはオブジェクト API の制限です。ここから、次の 2 つのオプションがあります。

  1. App Link Hosting API https://developers.facebook.com/docs/applinks/hosting-apiを使用して App Link URL を作成し、それを OG オブジェクトの url プロパティとして使用します。

  2. Web サイトがあるため、オブジェクト API を使用するのではなく、Web サイトの URL を使用して OG オブジェクトをホストします (ユーザー所有のオブジェクトが必要な場合は、これができない場合があります)。

于 2015-02-11T18:56:06.003 に答える