Implementacja serwera jest opcjonalna. Użyj tej usługi, jeśli chcesz wykonać te operacje:
- Uzyskiwanie informacji o instancjach aplikacji Zweryfikuj tokeny aplikacji lub dowiedz się więcej o instancji aplikacji, która je utworzyła.
- Utwórz mapy relacji na potrzeby instancji aplikacji. Twórz relacje między instancjami aplikacji a encjami takimi jak FCM czy tematy GCM.
- Utwórz tokeny rejestracji tokenów APNs. Ten interfejs API pozwala zbiorczo importować istniejące tokeny APNs, mapując je na prawidłowe tokeny rejestracji FCM lub GCM.
- Zarządzanie tokenami rejestracji w przypadku subskrypcji push W przypadku aplikacji internetowych zaimplementowanych za pomocą interfejsu Push API zaimportuj istniejące subskrypcje push i zmapuj je na prawidłowe tokeny rejestracji FCM.
Uzyskiwanie informacji o instancjach aplikacji
Aby uzyskać informacje o instancji aplikacji, wywołaj w tym punkcie końcowym usługę identyfikatora instancji, podając token instancji aplikacji w następujący sposób:
https://iid.googleapis.com/iid/info/IID_TOKEN
Parametry
Authorization
: klucz=Twój_API_KLUCZ. Ustaw ten parametr w nagłówku.- [Opcjonalny] wartość logiczna
details
: ustaw ten parametr zapytania natrue
, aby uzyskać informacje o subskrypcji tematów w FCM lub GCM (jeśli są takie) powiązane z tym tokenem. Jeśli nie określono inaczej, przyjmuje wartość domyślnąfalse
.
Wyniki
Po udanym wywołaniu zwraca stan HTTP 200 i obiekt JSON zawierający:
application
– nazwa pakietu powiązana z tokenem.authorizedEntity
– identyfikator projektu, który ma uprawnienia do wysyłania do tokena.applicationVersion
– wersja aplikacji.appSigner
–sha1
odcisk palca na podpis zastosowany do pakietu. Wskazuje podmiot, który podpisał aplikację, na przykładPlay Store
.platform
– zwracaANDROID
,IOS
lubCHROME
, aby pokazać platformę urządzenia, do którego należy token.
Jeśli ustawiona jest flaga details
:
rel
– relacje powiązane z tokenem. Może to być na przykład lista subskrypcji tematów.
Przykładowe żądanie GET
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
Przykładowy wynik
HTTP 200 OK
{
"application":"com.iid.example",
"authorizedEntity":"123456782354",
"platform":"Android",
"appSigner":"1a2bc3d4e5"
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}
Tworzenie map relacji dla instancji aplikacji
Interfejs API identyfikatora instancji pozwala tworzyć mapy relacji dla instancji aplikacji. Możesz na przykład zmapować token rejestracji na temat Google Cloud Messaging, przypisując instancję aplikacji do tego tematu. Interfejs API udostępnia metody tworzenia takich relacji – zarówno pojedynczo, jak i zbiorczo.
Tworzenie mapowania relacji dla instancji aplikacji
Biorąc pod uwagę token rejestracji i obsługiwaną relację, możesz utworzyć mapowanie. Możesz np. zasubskrybować instancję z tematu Google Cloud Messaging, wywołując usługę identyfikatora instancji w tym punkcie końcowym i podając token instancji w następujący sposób:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Parametry
Authorization
: klucz=Twój_API_KLUCZ. Ustaw ten parametr w nagłówku.
Wyniki
Po udanym wywołaniu zwraca stan HTTP 200.
Przykładowe żądanie POST
https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
Przykładowy wynik
HTTP 200 OK
{}
Zarządzanie mapami relacji w wielu instancjach aplikacji
Dzięki metodom wsadowym usługi instancji instancji możesz zbiorczo zarządzać instancjami aplikacji. Możesz na przykład zbiorczo dodać instancje aplikacji do tematu FCM lub GCM albo je usunąć. Aby zaktualizować maksymalnie 1000 instancji aplikacji na wywołanie interfejsu API, wywołaj usługę identyfikatora instancji w tym punkcie końcowym i podaj tokeny instancji aplikacji w treści JSON:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
Parametry
Authorization
: klucz=Twój_API_KLUCZ. Ustaw ten parametr w nagłówku.to
: nazwa tematu.registration_tokens
: tablica tokenów IID instancji aplikacji, które chcesz dodać lub usunąć.
Wyniki
Po udanym wywołaniu zwraca stan HTTP 200. Puste wyniki wskazują, że token został zrealizowany. W przypadku nieudanych subskrypcji wynik zawiera jeden z tych kodów błędów:
- NOT_FOUND – token rejestracji został usunięty lub aplikacja została odinstalowana.
- INVALID_SETTING – token rejestracji jest nieprawidłowy dla identyfikatora nadawcy.
- WEWNĘTRZNE – serwer backendu nie powiódł się z nieznanych przyczyn. Ponów żądanie.
- TOO_MANY_TOPICS – nadmierna liczba tematów na instancję aplikacji.
- RESOURCE_EXHAUSTED – zbyt wiele żądań subskrypcji lub anulowania subskrypcji w krótkim czasie. Spróbuj ponownie z użyciem wykładniczego ponowienia.
Przykładowe żądanie POST
https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization:key=API_KEY
{
"to": "/topics/movies",
"registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}
Przykładowy wynik
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
Tworzenie tokenów rejestracji dla tokenów APNs
Za pomocą metody batchImport
usługi identyfikatora instancji możesz zbiorczo zaimportować istniejące tokeny APNs systemu iOS do Google Cloud Messaging lub Komunikacji w chmurze Firebase (Firebase Cloud Messaging), mapując je na prawidłowe tokeny rejestracji. Wywołaj usługę identyfikatora instancji w tym punkcie końcowym i podaj listę tokenów APNs w treści JSON:
https://iid.googleapis.com/iid/v1:batchImport
Treść odpowiedzi zawiera tablicę tokenów rejestracji identyfikatora instancji, których można użyć do wysyłania wiadomości FCM lub GCM do odpowiedniego tokena urządzenia APNs.
Parametry
Authorization
: klucz=Twój_API_KLUCZ. Ustaw ten parametr w nagłówku.application
: identyfikator pakietu aplikacji.sandbox
– wartość logiczna wskazująca środowisko piaskownicy (TRUE) lub środowisko produkcyjne (FALSE).apns_tokens
: tablica tokenów APNs dla instancji aplikacji, które chcesz dodać lub usunąć. Maksymalnie 100 tokenów na żądanie.
Wyniki
W przypadku wywołania zwraca stan HTTP 200 i treść wyniku w formacie JSON. W każdym tokenie APN w żądaniu lista wyników zawiera:
- Token APNs.
- Stan. OK lub komunikat o błędzie z opisem.
- Aby wynik był pozytywny, token rejestracji, który FCM lub GCM mapuje na token APNs.
Przykładowe żądanie POST
https://iid.googleapis.com/iid/v1:batchImport
{
"application": "com.google.FCMTestApp",
"sandbox":false,
"apns_tokens":[
"368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
]
}
}
Przykładowy wynik
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
Zarządzanie tokenami rejestracji w przypadku subskrypcji push
Korzystając z metod internetowych usługi identyfikatora instancji, możesz importować istniejące subskrypcje push dla Komunikacji w chmurze Firebase (FCM). Możesz je też aktualizować i usuwać.
Podczas importowania subskrypcji push otrzymujesz token rejestracji. Token pozwala używać funkcji FCM, takich jak komunikaty dotyczące tematu i wiadomości z grupy urządzeń, by kierować powiadomienia do aplikacji internetowych.
Importuj subskrypcje push
Subskrypcje push możesz importować za pomocą punktu końcowego internetowego instancji:
https://iid.googleapis.com/v1/web/iid
Żądanie musi zawierać nagłówek autoryzacji, który jest tokenem dostępu OAuth 2.0, nagłówkiem kryptograficznym ustawionym na klucz serwera aplikacji oraz obiektem PushSubscription
w treści żądania.
Treść odpowiedzi zawiera token rejestracji gotowy do wysyłania wiadomości FCM lub GCM do odpowiedniej instancji aplikacji internetowej bez szyfrowania ładunku.
Prześlij parę kluczy VAPID do konsoli
Aby importować klucze, musisz mieć dostęp na poziomie właściciela do projektu Firebase. Zaimportuj swój klucz publiczny i prywatny do formularza zakodowanego w base64:
- Otwórz kartę Cloud Messaging w panelu Ustawienia w konsoli Firebase i przewiń do sekcji Konfiguracja sieci.
- Na karcie Certyfikaty Web Push znajdź i wybierz tekst linku „Importuj istniejącą parę kluczy”.
- W oknie Importuj parę kluczy wpisz klucze publiczne i prywatne w odpowiednich polach, a potem kliknij Importuj. Konsola wyświetla ciąg znaków klucza publicznego i datę dodania.
Pobieranie tokena OAuth2: używanie tokenów przy użyciu tokenów
Aby utworzyć token dostępu dla żądania, musisz utworzyć token dostępu i dodać go do żądania HTTP.
Node.js
function getAccessToken() {
return admin.credential.applicationDefault().getAccessToken()
.then(accessToken => {
return accessToken.access_token;
})
.catch(err => {
console.error('Unable to get access token');
console.error(err);
});
}
Python
def _get_access_token():
"""Retrieve a valid access token that can be used to authorize requests.
:return: Access token.
"""
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'service-account.json', SCOPES)
access_token_info = credentials.get_access_token()
return access_token_info.access_token
Java
private static String getAccessToken() throws IOException {
GoogleCredentials googleCredentials = GoogleCredentials
.fromStream(new FileInputStream("service-account.json"))
.createScoped(Arrays.asList(SCOPES));
googleCredentials.refreshAccessToken();
return googleCredentials.getAccessToken().getTokenValue();
}
Aby autoryzować dostęp do FCM, poproś o zakres https://www.googleapis.com/auth/firebase.messaging
.
Parametry
- Autoryzacja:
Bearer <access_token>
. Ustaw ten parametr w nagłówku. - Klucz kryptograficzny:
p256ecdsa=APPLICATION_PUBLIC_KEY
. Ustaw ten parametr w nagłówku. - Treść żądania:
PushSubscription.toJson()
. Przekaż subskrypcję push do treści HTTP bez jej analizowania. Treść pasuje do kodowania W3CPushSubscription
.
Odpowiedź
Po udanym wywołaniu zwraca kod stanu HTTP 200 OK i treść wyniku JSON zawierającą token IID.
Przykładowe żądanie POST
https://iid.googleapis.com/v1/web/iid
Content-Type:application/json
Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
{
"endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
"keys": {
"auth": "7cdY...xxjwz46Q",
"p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
}
}
Przykładowy wynik
HTTP 200 OK
{
"token":"KctODamlM4:CKrh_PC...cl"
}
Zaktualizuj subskrypcje push
Możesz zaktualizować subskrypcję push powiązaną z tokenem rejestracji za pomocą tego punktu końcowego:
https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN:refresh
Parametry
- Autoryzacja:
Bearer <access_token>
. Ustaw ten parametr w nagłówku. - Klucz kryptograficzny:
p256ecdsa=APPLICATION_PUBLIC_KEY
. Ustaw ten parametr w nagłówku. - Treść żądania:
PushSubscription.toJson()
. Przekaż subskrypcję push do treści HTTP bez jej analizowania. Treść pasuje do kodowania W3CPushSubscription
.
Wyniki
W przypadku powodzenia wywołanie zwraca stan HTTP 200 i token rejestracji. Może to być ten sam token, który został przez Ciebie przesłany w żądaniu lub nowy token.
HTTP 200 OK
{
"token":"KctODamlM4:CKrh_PC...cl"
}
Przykładowe żądanie POST
https://iid.googleapis.com/v1/web/iid/KctODamlM4:CKrh_PC...cl:refresh
Content-Type:application/json
Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
{
"endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
"keys": {
"auth": "7cdY...xxjwz46Q"",
"p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
}
}
Przykładowy wynik
HTTP 200 OK
{
"token":"KctODamlM4:CI2k_HHw...3P1"
}
Usuń subskrypcje push
Żądanie DELETE
usuwa szczegóły subskrypcji push z bazy danych FCM. Nadal możesz otrzymywać wiadomości w aplikacji internetowej przy użyciu protokołu Push API.
Aby usunąć subskrypcję push, wyślij żądanie DELETE
do:
https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN
Przykładowe żądanie DELETE
https://iid.googleapis.com/v1/web/iid/KctODamlM4:CI2k_HHw...3P1
Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
Przykładowy wynik
HTTP 200 OK {}
Odpowiedzi na błędy
Wywołania interfejsu API serwera identyfikatorów instancji zwracają te kody błędów HTTP:
HTTP status 400 (Bad request)
– brakuje parametrów żądania lub są one nieprawidłowe. Szczegółowe informacje znajdziesz w komunikatach o błędach.HTTP status 401 (Unauthorized)
– nagłówek autoryzacji jest nieprawidłowy.HTTP status 403 (Forbidden)
– nagłówek autoryzacji nie pasuje doauthorizedEntity
.HTTP status 404 (Not found)
– nie znaleziono nieprawidłowej ścieżki HTTP lub tokena IID. Szczegółowe informacje znajdziesz w komunikatach o błędach.HTTP status 503 (Service unavailable)
– usługa jest niedostępna. Ponów żądanie za pomocą wykładniczego ponowienia.