Как реализовать общий доступ к Facebook, а затем глубокую ссылку на этот пост, используя глубокую ссылку (открыть мое приложение) в приложении для Android? - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу реализовать глубокие ссылки на пост в приложении Facebook.Во-первых, я хочу поделиться контентом своего приложения в посте Facebook, а когда пользователь нажмет на пост, тогда, если у пользователя уже установлено приложение, откройте приложение, в противном случае откроется ссылка на приложение.

Я подписан на https://developers.facebook.com/docs/applinks/android и https://developers.facebook.com/docs/sharing/android#linkshare, но это не работает

как поделиться этими данными с помощью LinkShare на facebook

target_url: "https://developers.facebook.com/android" Дополнительно: fb_app_id: [YOUR_FACEBOOK_APP_ID] fb_access_token: "[ACCESS_TOKEN]" fb_expires_in: 3600

1 Ответ

0 голосов
/ 23 января 2019

Чтобы реализовать глубокое связывание и совместное использование, необходимо реализовать эту функцию с помощью branch.io

Добавить зависимость:

 compile 'com.google.android.gms:play-services-appindexing:9.+' 

Добавить этот код в манифестфайл внутри Launcher Activity

  <!-- Branch URI Scheme -->
        <intent-filter>
            <data android:scheme="androidexample" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>

        <!-- Branch App Links (optional) -->
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" android:host="example.app.link" />
            <data android:scheme="https" android:host="example-alternate.app.link" />
        </intent-filter>    

Добавьте этот код в Launcher Activity, вы получите ссылку и данные в этом методе

@Override
public void onStart() {
    super.onStart();

    // Branch init
    Branch.getInstance().initSession(new Branch.BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject referringParams, BranchError error) {
            if (error == null) {
                Log.i("BRANCH SDK", referringParams.toString());
                // Retrieve deeplink keys from 'referringParams' and evaluate the values to determine where to route the user
                // Check '+clicked_branch_link' before deciding whether to use your Branch routing logic
            } else {
                Log.i("BRANCH SDK", error.getMessage());
            }
        }
    }, this.getIntent().getData(), this);
}    

Добавьте этот код в класс MyApplication

 // Branch logging for debugging
    Branch.enableLogging();

 // Branch object initialization
    Branch.getAutoInstance(this);   

Вы можете создать глубокую ссылку, используя этот код

 LinkProperties lp = new LinkProperties()
.setChannel("facebook")
.setFeature("sharing")
.setCampaign("content 123 launch")
.setStage("new user")
.addControlParameter("$desktop_url", "http://example.com/home")
.addControlParameter("custom", "data")
.addControlParameter("custom_random", 
Long.toString(Calendar.getInstance().getTimeInMillis()));

buo.generateShortUrl(this, lp, new 
Branch.BranchLinkCreateListener() {
@Override
public void onLinkCreate(String url, BranchError error) {
    if (error == null) {
        Log.i("BRANCH SDK", "got my Branch link to share: " + url);
    }
}
});    

см. Это для Android

см. Это для ios

...