2016-03-14 12 views
6

Wysyłając zaproszenie do aplikacji w mojej aplikacji, staram się znaleźć sposób dodania do niego metadanych, aby śledzić wewnętrznie, kto wysłał zaproszenia i jak udane były (Facebook pokazuje tylko dane z kiedy okno dialogowe jest otwarte i nie ma możliwości śledzenia konkretnych ścieżek).Dodaj metadane do zaproszenia do aplikacji Facebook

mój kod do wysyłania zaproszenia jest:

private void openFacebookAppInvite() { 
     AppInviteContent content = new AppInviteContent.Builder() 
       .setApplinkUrl(FACEBOOK_APP_LINK_URL) 
       .setPreviewImageUrl(INVITE_PREVOEW_IMAGE_URL) 
       .build(); 
     // WANT TO ADD METADATA HERE 
     AppInviteDialog.show(this, content); 
} 

Odpowiedz

4

Może to nie jest odpowiedź, że liczyliśmy, ale myślę, że to pomoże w celu realizacji swoich wymagań.

Część 1: wysyłanie danych bezpośrednio z AppInvite

O ile wiem, to nie jest możliwe, aby wysłać dane z niestandardowych AppInvites utworzonego z AppInviteContent.Builder bezpośrednio. W części 3 wyjaśnię bardziej złożoną możliwość. Ale może opcja dla ciebie to GameRequest. A GameRequestDialog można zainicjować za pomocą obiektu GameRequestContent. Metoda setData klasy GameRequestContent.Builder "ustawia opcjonalne dane, które można wykorzystać do śledzenia".

Część 2: śledzenie zaprasza

Oczywiście można śledzić, że użytkownik otworzył AppInviteDialog (przez proste zapytanie do serwera). Niestety nie jest możliwe śledzenie, którzy lub ilu użytkowników jest zaproszonych.

Po tym, jak zaproszony użytkownik zaakceptuje zaproszenie, zainstaluje i uruchomi aplikację mobilną (lub daje uprawnienia do płótna, jeśli masz także aplikację na płótnie), możesz uzyskać wszystkie AppRequests (Zaproszenia) zapytanie do /me/apprequests z Graph API.

także możliwe:

  1. Płótno App: Żądanie POST, serwer dostanie po zaproszony użytkownik otwiera stronę płótna, zawiera parametr request_ids. Jest to lista oddzielona przecinkami app-request-ids, która może być użyta w zapytaniu graficznym.
  2. Mobile App: Po zainstalowaniu zaproszony użytkownik i rozpoczął aplikację w odpowiedzi na AppRequest, jesteś w stanie uzyskać app-request-ids z zamiarem lub przez zastosowanie AppLinkData.fetchDeferredAppLinkData i appLinkData.getTargetUri().getQueryParameter("request_ids"). Zobacz rozdział "Supporting incoming links" w dokumentacji. Teraz możesz utworzyć żądanie wykresu api.

Część 3: wysyłanie danych z AppInvite pośrednictwem App-Link

Jak pokazano w części 2.2, dostaniesz targetUrl po zaproszony użytkownik otworzy aplikację.. Ten targetUrl jest określony w AppLink znalezionym pod AppLinkUrl, którego używałeś do AppInvite. Dzięki "Dynamic App Link endpoint" możliwe jest wysyłanie danych do zaproszonych osób. Oto pomysł jak zaimplementować to:

  1. Serwer określa punkt końcowy z uri-szablonu POST:http://example.com/users/${USER}/invites/. $ {USER} to nazwa użytkownika nadawcy zaproszenia.
  2. Przed utworzeniem okna dialogowego zaproszenia, klient wysyła żądanie POST do punktu końcowego od kroku 1 i otrzymuje identyfikator UUID jako odpowiedź, która odnosi się do planowanego zaproszenia i użytkownika.
  3. serwer definiuje drugi punkt końcowy GET:http://example.com/users/${USER}/invites/${UUID}. Odpowiedzią na ten punkt końcowy jest strona ze zdefiniowanym adresem AppLink, gdzie al:android:url to example://users/${USER}/invites/${UUID} - oczywiście symbol zastępczy $ {USER} i $ {UUID} są zastąpione poprawnymi wartościami z kroku 1 i 2.
  4. Klient używa punktu końcowego od kroku 3 (http://example.com/users/${USER}/invites/${UUID}) jako app-link-url podczas tworzenia AppInviteContent.
  5. Zaproszony użytkownik akceptuje zaproszenie i otwiera aplikację. Teraz jesteśmy w stanie uzyskać UUID z targetUrl (patrz krok 2.2/"Supporting incoming links").
Powiązane problemy