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());
}
}