2016-07-09 11 views
7

私はオープンソース会議用のアプリケーションを作成しています。 Firebaseダイナミックリンクはカスタムパラメータをサポートしていますか?

はもともと各出席者は、我々は、ユーザーがトークンによってどの参加者で知ることができ、アプリを開くには、このリンクを使用し、その後

https://example.com/?token=fccfc8bfa07643a1ca8015cbe74f5f17

のように電子メールまたはSMS経由で別のリンクを受け取ることになります。

Firebaseは、I/O 2016の新しい機能のダイナミックリンクをリリースし、ユーザーにとってより良いエクスペリエンスを提供します。

私はそれを試してみましたが、カスタムパラメータ(トークン)をダイナミックリンクに渡す方法は見つけられません。ユーザーとは異なるリンクで同じリンクを使用する方法はありますか?

ありがとうございました。

答えて

12

私はあなたが短いURLに使用できるとは思わない:あなたは、各ユーザーのための1つを作成しない限り https://<my app>.app.goo.gl/Gk3m をしていますが、長いURLを使用することができます https://<my app>.app.goo.gl/?link=https://example.com/?token=fccfc8bfa07643a1ca8015cbe74f5f17 ...(add other parameters as needed) をし、ユーザーごとに新しいトークンを設定します。

自動的にトークンを生成すると仮定します。その場合、thisを使用してリンクを短縮することができます。

+0

ありがとうございました!それは仕事です! –

+0

助けてください:http://stackoverflow.com/q/42093902/6144372 –

1

リンクにパラメータを追加してFirebaseからショートURLを生成することができます。 ここでは、Firebase APIを使ったショートURL生成の例を挙げました。ここで ServiceRequestHelper(この).PostCallは、APIリクエストあなたの受容活性の

String url = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=YOUR_KEY"; 

    try { 
     PackageManager manager = this.getPackageManager(); 
     PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0); 
     JSONObject jsonObject = new JSONObject(); 
     JSONObject androidInfoObject = new JSONObject(); 
     androidInfoObject.put("androidPackageName", getApplicationContext().getPackageName()); 
     androidInfoObject.put("androidMinPackageVersionCode",String.valueOf(info.versionCode)); 

     JSONObject iosInfoObject = new JSONObject(); 
     iosInfoObject.put("iosBundleId", "tettares.Test_ID"); 
     JSONObject dynamicLinkInfoObj = new JSONObject(); 
     dynamicLinkInfoObj.put("dynamicLinkDomain", "wgv3v.app.goo.gl"); 
     dynamicLinkInfoObj.put("link", "https://test.in/?UserId=14&UserName=Naveen"); // Pass your extra paramters to here 
     dynamicLinkInfoObj.put("androidInfo", androidInfoObject); 
     dynamicLinkInfoObj.put("iosInfo", iosInfoObject); 

     JSONObject suffixObject = new JSONObject(); 
     suffixObject.put("option" , "SHORT"); 
     jsonObject.put("dynamicLinkInfo", dynamicLinkInfoObj); 
     jsonObject.put("suffix", suffixObject); 

     Log.d("JSON Object : " , jsonObject.toString()); 

     new ServiceRequestHelper(this).PostCall(url, jsonObject, false, new CallBackJson() { 
      @Override 
      public void done(JSONObject result) throws JSONException { 

       try { 
        if (result.has("shortLink")) { 
         DEEP_LINK_URL = result.getString("shortLink");             } 
       } catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 

      } 
     }); 


    } catch (JSONException | PackageManager.NameNotFoundException e) { 
     e.printStackTrace(); 
    } 

を作るために、私の一般的なクラスです:

boolean autoLaunchDeepLink = false; 
    AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink) 
      .setResultCallback(
        new ResultCallback<AppInviteInvitationResult>() { 
         @Override 
         public void onResult(@NonNull AppInviteInvitationResult result) { 
          if (result.getStatus().isSuccess()) { 
           // Extract deep link from Intent 
           Intent intent = result.getInvitationIntent(); 
           String deepLink = AppInviteReferral.getDeepLink(intent); 

           // Handle the deep link. For example, open the linked 
           // content, or apply promotional credit to the user's 
           // account. 

           // [START_EXCLUDE] 
           // Display deep link in the UI 
           Log.d(TAG, "deeplink URL: " + deeplink); // Here you get https://test.in/?UserId=14&UserName=Naveen 
           // [END_EXCLUDE] 
          } else { 
           Log.d(TAG, "getInvitation: no deep link found."); 
          } 
         } 
        }); 
4

今、あなたはFirebaseDynamicLinks.getInstance().createDynamicLink()を通じてFirebase SDKを使用して、短いリンクを作成することができます: https://firebase.google.com/docs/dynamic-links/android/create

サンプルコード:

Task shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() 
    .setLink(Uri.parse("https://example.com/")) 
    .setDynamicLinkDomain("abc123.app.goo.gl") 
    // Set parameters 
    // ... 
    .buildShortDynamicLink() 
    .addOnCompleteListener(this, new OnCompleteListener() { 
     @Override 
     public void onComplete(@NonNull Task task) { 
      if (task.isSuccessful()) { 
       // Short link created 
       Uri shortLink = task.getResult().getShortLink(); 
       Uri flowchartLink = task.getResult().getPreviewLink(); 
      } else { 
       // Error 
      } 
     } 
    }); 
関連する問題