2015-01-30 2 views
2

내 Android 앱에서 AppLinks를 작동시키는 데 큰 어려움을 겪고 있습니다. MyApp를 호출합니다. 필자는 페이스 북 개발자 사이트의 문서를 따라 기존 앱에 앱 링크를 통합했습니다. 페이스 북의 디버그 도구 (https://developers.facebook.com/tools/debug/og/object/는) applinks 내 3 개 메타 태그를 내 웹 페이지가 제대로 긁어지고 보여주고, 보여줍니다Facebook AppLinks가 Android 앱에 URI를 전달하지 않습니다.

<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" /> 

나는 페이스 북이 URL I을 공유하는 공유 대화 상자를 사용하여 게시 오픈 그래프 이야기가 페이스 북의 디버그 도구를 통해 보았습니다. 이 Open Graph Stories는 Facebook에 의해 검토/승인되었으며 뉴스 피드에 표시됩니다. 클릭하면 페이스 북의 브라우저에서 이야기와 관련된 URL로 이동합니다. Android 용 Facebook에서 클릭하면 URI 스키마 (UriLoadingActivity)를 처리하는 활동이 아니라 MyApp의 기본 활동 (MainActivity) 만 열립니다. 내가 푸시 알림에 사용하기 때문에 나는 URI 체계가 작동 알고

<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> 

내가 (에서 onCreate에서 로그를) MainActivity의 의도를 확인 : 사용자가 알림을 클릭하면, 그것은 UriLoadingActivity에 소요 페이스 북에서 전달 된 데이터. 따라서 referer_app_link 번들에 Facebook 패키지와 앱 이름이 표시됩니다. Open Graph Story에 게시 한 웹 페이지 URL이있는 target_url을 얻을 수도 있지만 내 웹 페이지의 메타 태그에서 제공 한 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()); 
    } 
} 
+0

공유하는 방법에 일부 코드 단편을 추가 할 수 있습니까? 나는 FB 앱이 앱 링크가 아닌 이전 딥 링크 프로토콜 (앱 설정에서)에 앱을 실제로 열고 있다고 의심하고 어떻게 든 다시 만들 수 있는지 확인하려고합니다. –

+0

나는 위에 나의 몫을 배치했다. Deep Linking 토글이 Facebook 설정에서 켜져 있습니다. 이 기능을 끄면 Android Facebook 인앱 브라우저에 공유 된 URL이 열립니다. –

답변

0

죄송합니다.

개체 API를 사용하여 사용자 소유 OG 개체를 만듭니다. 해당 OG 개체를 응용 프로그램 링크로 사용하려면 해당 개체의 URL (myObject.setUrl)이 App Link Hosting 개체의 canonical_url이어야합니다. 즉, App Link Hosting API를 통해 개체를 만들어야합니다. 제대로 병합되지 않으므로 자신의 URL을 사용할 수 없습니다. 이것은 Object API의 제한 사항입니다.

  1. 이 API https://developers.facebook.com/docs/applinks/hosting-api 호스팅 앱 링크를 사용하여 앱 링크 URL을 생성하고 사용하는 당신의 OG 개체의 url 속성과 같은 : 여기에서 두 가지 옵션이 있습니다.

  2. 웹 사이트가 있으므로 개체 API를 사용하는 대신 웹 사이트의 URL을 사용하여 OG 개체를 호스팅하십시오 (사용자 소유 개체가 필요한 경우 가능하지 않을 수 있음).

+0

답변을 주셔서 감사합니다. 후속 조치로서 - 우리는 웹 사이트를 운영하고 있으며, 브라우저에서의 이야기를 통해 이러한 이야기와 연결된 페이지가 열리는 것을 좋아합니다. 이러한 이유로 우리는 호스팅 API 사용을 멀리하고 싶습니다. 그러나 사용자가 게시 한 기사에서 게시물의 앱 이미지를 사용하도록하는 것도 좋습니다. OG 개체를 호스팅 할 수있는 방법이 있습니까? 아직 사용자가 게시물에 대해 생성 한 이미지가 있습니까? 또한 Object API를 업데이트하여 사용자 소유의 OG 객체 (우리가하는 것처럼)를 사용하면서도 자신의 웹 페이지에 연결할 수 있도록 허용 할 계획이 있지만 앱 링크가 작동하는지 알고 있습니까? –

+0

개체가 아닌 OG 작업에 이미지를 첨부 할 수 있습니다. 그러면 자신의 호스팅 된 개체를 사용할 수 있으며 첨부 파일을 계속 사용할 수 있습니다. AFAIK에는 내 사이트의 앱 링크가있는 객체 API 객체를 연결할 계획이 없습니다. –