Implementacja po stronie serwera jest opcjonalna. Używaj usługi Instance ID, jeśli chcesz wykonywać te operacje:
- Dowiedz się więcej o instancach aplikacji Weryfikowanie tokenów aplikacji lub uzyskiwanie dodatkowych informacji o instancji aplikacji, która utworzyła token.
- Utwórz mapy relacji dla instancji aplikacji. tworzenie relacji między instancjami aplikacji a elementami,
- Utwórz tokeny rejestracji dla tokenów APN. Ten interfejs API umożliwia zbiorczy import istniejących tokenów APN, mapując je na prawidłowe tokeny rejestracji dla FCM.
Uzyskiwanie informacji o instancjach aplikacji
Aby uzyskać informacje o instancji aplikacji, wywołaj usługę Instance ID na tym punkcie końcowym, podając token instancji aplikacji w ten sposób:
https://iid.googleapis.com/iid/info/IID_TOKEN
Parametry
Authorization: Bearer <access_token>
. Ustaw ten parametr w nagłówku. Dodaj krótkotrwały token OAuth2 jako wartość nagłówkaAuthorization
. Więcej informacji o uzyskiwaniu tego tokena znajdziesz w artykule Ręczne podawanie danych logowania.access_token_auth: true
. Ustaw ten parametr w nagłówku.- [opcjonalnie] boolean
details
: ustaw ten parametr zapytania natrue
, aby uzyskać informacje o subskrypcji tematu FCM (jeśli istnieją) powiązane z tym tokenem. Jeśli nie podasz tu żadnej wartości, zostanie użyta wartość domyślnafalse
.
Wyniki
W przypadku powodzenia wywołanie zwraca kod stanu HTTP 200 i obiekt JSON zawierający:
application
– nazwa pakietu powiązana z tokenem.authorizedEntity
– identyfikator projektu autoryzowany do wysyłania do tokena.applicationVersion
– wersja aplikacji.platform
– zwraca wartośćANDROID
,IOS
lubCHROME
, aby wskazać platformę urządzenia, do której 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
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
Przykładowy wynik
HTTP 200 OK
{
"application":"com.iid.example",
"authorizedEntity":"123456782354",
"platform":"Android",
"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 Instance ID API umożliwia tworzenie map relacji dla instancji aplikacji. Możesz na przykład zmapować token rejestracji na temat FCM, subskrybując instancję aplikacji do tego tematu. Interfejs API udostępnia metody tworzenia takich relacji zarówno pojedynczo, jak i zbiorczo.
Tworzenie mapowania relacji instancji aplikacji
Na podstawie tokena rejestracji i obsługiwanego związku możesz utworzyć mapowanie. Możesz na przykład subskrybować instancję aplikacji do tematu FCM, wywołując usługę Instance ID na tym punkcie końcowym i podając token instancji aplikacji w taki sposób:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Parametry
Authorization: Bearer <access_token>
. Ustaw ten parametr w nagłówku. Dodaj krótkotrwały token OAuth2 jako wartość nagłówkaAuthorization
. Więcej informacji o uzyskiwaniu tego tokena znajdziesz w artykule Ręczne podawanie danych logowania.access_token_auth: true
. Ustaw ten parametr w nagłówku.
Wyniki
W przypadku powodzenia wywołanie zwraca kod stanu 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: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
Przykładowy wynik
HTTP 200 OK
{}
Zarządzanie mapami relacji w przypadku wielu instancji aplikacji
Za pomocą metod zbiorczych usługi Instance ID możesz zbiorczo zarządzać instancjami aplikacji. Możesz na przykład zbiorczo dodawać lub usuwać instancje aplikacji do tematu FCM. Aby zaktualizować do 1000 instancji aplikacji na każde wywołanie interfejsu API, wywołaj usługę Identyfikator instancji na tym punkcie końcowym, podając tokeny instancji aplikacji w ciele żądania w formacie JSON:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
Parametry
Authorization: Bearer <access_token>
. Ustaw ten parametr w nagłówku. Dodaj krótkotrwały token OAuth2 jako wartość nagłówkaAuthorization
. Więcej informacji o uzyskiwaniu tego tokena znajdziesz w artykule Ręczne podawanie danych logowania.access_token_auth: true
. Ustaw ten parametr w nagłówku.to
: nazwa tematu.registration_tokens
: tablica tokenów IID instancji aplikacji, które chcesz dodać lub usunąć.
Wyniki
W przypadku powodzenia wywołanie zwraca kod stanu HTTP 200. Puste wyniki wskazują, że token został pomyślnie subskrybowany. W przypadku nieudanych subskrypcji wynik zawiera jeden z tych kodów błędu:
- NOT_FOUND – token rejestracji został usunięty lub aplikacja została odinstalowana.
- INVALID_ARGUMENT – podany token rejestracji jest nieprawidłowy dla podanego identyfikatora nadawcy.
- INTERNAL – serwer backendu nie działa z nieznanych powodów. Ponownie prześlij prośbę.
- TOO_MANY_TOPICS – zbyt duża liczba tematów na instancję aplikacji.
- RESOURCE_EXHAUSTED – zbyt wiele żądań dotyczących subskrypcji lub anulowania subskrypcji w krótkim czasie. Podejmuje ponowne próby ze wzrastającym czasem do ponowienia.
Przykładowe żądanie POST
https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
{
"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 APN
Korzystając z metody batchImport
usługi Identyfikator instancji, możesz zbiorczo zaimportować i zmapować istniejące tokeny APNs na iOS do Firebase Cloud Messaging. Wywołaj usługę Instance ID na tym punkcie końcowym, podając w ciele odpowiedzi w formacie JSON listę tokenów APN:
https://iid.googleapis.com/iid/v1:batchImport
Treść odpowiedzi zawiera tablicę tokenów rejestracji identyfikatora instancji, które są gotowe do użycia do wysyłania wiadomości FCM do odpowiadającego tokena urządzenia APN.
Parametry
Authorization: Bearer <access_token>
. Ustaw ten parametr w nagłówku. Dodaj krótkotrwały token OAuth2 jako wartość nagłówkaAuthorization
. Więcej informacji o uzyskiwaniu tego tokena znajdziesz w artykule Ręczne podawanie danych logowania.access_token_auth: true
. Ustaw ten parametr w nagłówku.application
: identyfikator pakietu aplikacji.sandbox
: wartość logiczna wskazująca środowisko piaskownicy (PRAWDA) lub produkcyjne (FAŁSZ).apns_tokens
: tablica tokenów APN dla instancji aplikacji, które chcesz dodać lub usunąć. Maksymalnie 100 tokenów na żądanie.
Wyniki
W przypadku powodzenia wywołanie zwraca kod stanu HTTP 200 i tekst odpowiedzi w formacie JSON. W przypadku każdego tokena APNs podanego w żądaniu lista wyników zawiera:
- Token APN.
- Stan. OK lub komunikat o błędzie opisujący błąd.
- W przypadku pomyślnych wyników token rejestracji, który FCM mapuje na token APN.
Przykładowe żądanie POST
https://iid.googleapis.com/iid/v1:batchImport
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth:true
{
"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"
},
]
}
Odpowiedzi na błędy
Wywołania interfejsu API serwera Instance ID zwracają te kody błędów HTTP:
HTTP status 400 (Bad request)
– parametry żądania są nieprawidłowe lub ich brakuje. 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)
– nieprawidłowa ścieżka HTTP lub nie znaleziono tokenu IID. Szczegółowe informacje znajdziesz w komunikatach o błędach.HTTP status 503 (Service unavailable)
– usługa jest niedostępna. Ponownie prześlij żądanie ze wzrastającym czasem do ponowienia.