คุณจะใช้งานเซิร์ฟเวอร์หรือไม่ก็ได้ ใช้บริการรหัสอินสแตนซ์หากต้องการดําเนินการต่อไปนี้
- ดูข้อมูลเกี่ยวกับอินสแตนซ์ของแอป ยืนยันโทเค็นแอปหรือดูข้อมูลเพิ่มเติมเกี่ยวกับอินสแตนซ์ของแอปที่สร้างโทเค็น
- สร้างแผนที่ความสัมพันธ์สําหรับอินสแตนซ์ของแอป สร้างความสัมพันธ์ระหว่างอินสแตนซ์ของแอปและเอนทิตี เช่น หัวข้อ FCM หรือ GCM
- สร้างโทเค็นการลงทะเบียนสําหรับโทเค็น APN API นี้ช่วยให้คุณนําเข้าโทเค็น APN ที่มีอยู่แบบเป็นกลุ่มได้ โดยแมปโทเค็นดังกล่าวกับโทเค็นการลงทะเบียนที่ถูกต้องสําหรับ FCM หรือ GCM
- จัดการโทเค็นการลงทะเบียนสําหรับการสมัครใช้บริการ Push สําหรับเว็บแอปพลิเคชันที่ติดตั้งใช้งานโดยใช้ Push API ให้นําเข้าการสมัครใช้บริการพุชที่มีอยู่ซึ่งแมปกับโทเค็นการลงทะเบียนที่ถูกต้องสําหรับ FCM
รับข้อมูลเกี่ยวกับอินสแตนซ์ของแอป
หากต้องการทราบข้อมูลเกี่ยวกับอินสแตนซ์ของแอป ให้เรียกใช้บริการรหัสอินสแตนซ์ที่ปลายทางนี้โดยระบุโทเค็นของอินสแตนซ์แอปดังที่แสดงด้านล่างนี้
https://iid.googleapis.com/iid/info/IID_TOKEN
พารามิเตอร์
Authorization
: key=YOUR_API_KEY ตั้งค่าพารามิเตอร์นี้ในส่วนหัว- [ไม่บังคับ] บูลีน
details
: ตั้งค่าพารามิเตอร์การค้นหานี้เป็นtrue
เพื่อรับข้อมูลการสมัครใช้บริการหัวข้อ FCM หรือ GCM (หากมี) ที่เชื่อมโยงกับโทเค็นนี้ เมื่อไม่ได้ระบุ ระบบจะใช้ค่าเริ่มต้นเป็นfalse
ผลลัพธ์
เมื่อสําเร็จ การเรียกใช้จะแสดงสถานะ HTTP 200 และออบเจ็กต์ JSON ที่มีสิ่งต่อไปนี้
application
- ชื่อแพ็กเกจที่เชื่อมโยงกับโทเค็นauthorizedEntity
- projectId ได้รับอนุญาตให้ส่งไปยังโทเค็นapplicationVersion
- เวอร์ชันของแอปพลิเคชันappSigner
-sha1
ลายนิ้วมือสําหรับลายเซ็นที่ใช้กับแพ็กเกจ ระบุว่าฝ่ายใดรับรองแอป เช่นPlay Store
platform
- แสดงผลANDROID
,IOS
หรือCHROME
เพื่อแสดงแพลตฟอร์มของอุปกรณ์ที่เป็นโทเค็น
หากตั้งค่าแฟล็ก details
ไว้ ให้ทําดังนี้
rel
- ความสัมพันธ์ที่เชื่อมโยงกับโทเค็น เช่น รายการการติดตามหัวข้อ
ตัวอย่างคําขอ GET
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
ตัวอย่างผลการค้นหา
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"}
}
}
}
สร้างความสัมพันธ์สําหรับอินสแตนซ์ของแอป
API ของอินสแตนซ์ช่วยให้คุณแมปความสัมพันธ์สําหรับอินสแตนซ์ของแอปได้ ตัวอย่างเช่น คุณอาจจับคู่โทเค็นการลงทะเบียนกับหัวข้อการรับส่งข้อความในระบบคลาวด์ของ Google โดยการติดตามอินสแตนซ์ของแอปไปยังหัวข้อ API นี้มีวิธีสร้างความสัมพันธ์ดังกล่าวทั้งแบบกลุ่มและแบบกลุ่ม
สร้างการแมปความสัมพันธ์สําหรับอินสแตนซ์แอป
คุณสามารถสร้างโทเค็นการลงทะเบียนและความสัมพันธ์ที่รองรับได้เพื่อสร้างการแมป ตัวอย่างเช่น คุณสมัครใช้บริการอินสแตนซ์ของแอปกับหัวข้อการรับส่งข้อความในระบบคลาวด์ของ Google ได้โดยเรียกใช้บริการรหัสอินสแตนซ์ที่ปลายทางนี้ โดยระบุโทเค็นของอินสแตนซ์แอปดังที่แสดงด้านล่างนี้
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
พารามิเตอร์
Authorization
: key=YOUR_API_KEY ตั้งค่าพารามิเตอร์นี้ในส่วนหัว
ผลลัพธ์
เมื่อสําเร็จ การเรียกใช้จะแสดงสถานะ HTTP 200
ตัวอย่างคําขอ 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
ตัวอย่างผลการค้นหา
HTTP 200 OK
{}
จัดการการแมปความสัมพันธ์สําหรับอินสแตนซ์แอปหลายรายการ
วิธีการแบบกลุ่มของอินสแตนซ์รหัสบริการช่วยให้คุณจัดการอินสแตนซ์ของแอปแบบกลุ่มได้ ตัวอย่างเช่น คุณสามารถเพิ่มหรือนําอินสแตนซ์แอปออกหลายรายการพร้อมกันในหัวข้อ FCM หรือ GCM หากต้องการอัปเดตอินสแตนซ์ของแอปสูงสุด 1,000 รายการต่อการเรียก API โปรดเรียกใช้บริการรหัสอินสแตนซ์ที่ปลายทางนี้โดยระบุโทเค็นอินสแตนซ์แอปในส่วนเนื้อหาของ JSON
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
พารามิเตอร์
Authorization
: key=YOUR_API_KEY ตั้งค่าพารามิเตอร์นี้ในส่วนหัวto
: ชื่อหัวข้อregistration_tokens
: อาร์เรย์ของโทเค็น IID สําหรับอินสแตนซ์แอปที่คุณต้องการเพิ่มหรือนําออก
ผลลัพธ์
เมื่อสําเร็จ การเรียกใช้จะแสดงสถานะ HTTP 200 ผลลัพธ์ที่ว่างเปล่าบ่งชี้ถึงการสมัครใช้บริการที่ประสบความสําเร็จสําหรับโทเค็น สําหรับการสมัครใช้บริการที่ไม่สําเร็จ ผลการค้นหาจะมีรหัสข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้
- NOT_FOUND — โทเค็นการลงทะเบียนถูกลบออกแล้วหรือถอนการติดตั้งแอปแล้ว
- ดูข้อมูลที่ไม่ถูกต้องสําหรับโทเค็นการลงทะเบียนที่ระบุสําหรับรหัสผู้ส่งไม่ได้
- ภายใน — เซิร์ฟเวอร์แบ็กเอนด์ล้มเหลวโดยไม่ทราบสาเหตุ ลองส่งคําขออีกครั้ง
- TOO_MANY_TOPICS — จํานวนหัวข้อต่ออินสแตนซ์ของแอปมากเกินไป
- RESOURCE_EXHAUSTED — การสมัครใช้บริการหรือการยกเลิกการสมัครใช้บริการจํานวนมากเกินไปในช่วงเวลาสั้นๆ ลองอีกครั้งโดยใช้ Exponential Backoff
ตัวอย่างคําขอ 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..."],
}
ตัวอย่างผลการค้นหา
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
สร้างโทเค็นการลงทะเบียนสําหรับโทเค็น APN
คุณสามารถใช้เมธอด batchImport
ของอินสแตนซ์รหัสเพื่อนําเข้าโทเค็น APN ที่มีอยู่ของ iOS ไปยัง Google Cloud Messaging หรือ Firebase Cloud Messaging ได้ ซึ่งจะแมปกับโทเค็นการลงทะเบียนที่ถูกต้อง เรียกบริการรหัสอินสแตนซ์ที่ปลายทางนี้ โดยแสดงรายการโทเค็น APN ในเนื้อหาของ JSON
https://iid.googleapis.com/iid/v1:batchImport
เนื้อหาการตอบกลับมีอาร์เรย์ของโทเค็นการลงทะเบียนรหัสอินสแตนซ์พร้อมใช้งานสําหรับส่งข้อความ FCM หรือ GCM ไปยังโทเค็นอุปกรณ์ APN ที่เกี่ยวข้อง
พารามิเตอร์
Authorization
: key=YOUR_API_KEY ตั้งค่าพารามิเตอร์นี้ในส่วนหัวapplication
: รหัสชุดของแอปsandbox
: บูลีนเพื่อระบุสภาพแวดล้อมของแซนด์บ็อกซ์ (TRUE) หรือเวอร์ชันที่ใช้งานจริง (FALSE)apns_tokens
: อาร์เรย์ของโทเค็น APN สําหรับอินสแตนซ์แอปที่คุณต้องการเพิ่มหรือนําออก โทเค็นสูงสุด 100 รายการต่อคําขอ
ผลลัพธ์
เมื่อสําเร็จ การเรียกใช้จะแสดงสถานะ HTTP 200 และเนื้อความผลลัพธ์ JSON สําหรับโทเค็น AMP แต่ละคําขอที่ให้ไว้ในคําขอ รายการผลลัพธ์ประกอบด้วย
- โทเค็น APN
- สถานะ ใช้ได้ หรือข้อความแสดงข้อผิดพลาดที่อธิบายความล้มเหลว
- เพื่อผลลัพธ์ที่สําเร็จ โทเค็นการลงทะเบียนที่ FCM หรือ GCM แมปกับโทเค็น APN
ตัวอย่างคําขอ POST
https://iid.googleapis.com/iid/v1:batchImport
{
"application": "com.google.FCMTestApp",
"sandbox":false,
"apns_tokens":[
"368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
]
}
}
ตัวอย่างผลการค้นหา
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
จัดการโทเค็นการลงทะเบียนสําหรับการสมัครใช้บริการ Push
คุณสามารถนําเข้าการพุชที่มีอยู่สําหรับ Firebase Cloud Messaging ได้โดยใช้เมธอดเว็บของบริการอินสแตนซ์รหัส คุณสามารถอัปเดตและลบได้อีกด้วย
เมื่อนําเข้าการสมัครใช้บริการแบบพุช คุณจะได้รับโทเค็นการลงทะเบียน โทเค็นนี้ช่วยให้คุณใช้ฟีเจอร์ FCM ได้ เช่น การรับส่งข้อความตามหัวข้อและการรับส่งข้อความแบบกลุ่มของอุปกรณ์ เพื่อกําหนดเป้าหมายการแจ้งเตือนไปยังเว็บแอป
นําเข้าการสมัครใช้บริการ Push
คุณนําเข้าการสมัครใช้บริการแบบพุชได้โดยใช้ปลายทางเว็บของ InstanceID
https://iid.googleapis.com/v1/web/iid
คําขอต้องมีส่วนหัวการให้สิทธิ์ตั้งค่าเป็นโทเค็นเพื่อการเข้าถึง OAuth 2.0 ส่วนหัวคีย์คริปโตที่ตั้งค่าเป็นคีย์เซิร์ฟเวอร์แอปพลิเคชันและออบเจ็กต์ PushSubscription
ในเนื้อหาคําขอ
ส่วนเนื้อหาของการตอบกลับมีโทเค็นการลงทะเบียนที่พร้อมสําหรับส่งข้อความ FCM หรือ GCM ไปยังอินสแตนซ์เว็บแอปที่เกี่ยวข้องโดยไม่ต้องเข้ารหัสเพย์โหลด
อัปโหลดคู่คีย์ VAPID ไปยังคอนโซล
หากต้องการนําเข้าคีย์ คุณต้องมีสิทธิ์เข้าถึงระดับโปรเจ็กต์ของ Firebase นําเข้าคีย์สาธารณะและคีย์ส่วนตัวที่มีอยู่ในรูปแบบที่เข้ารหัสแบบ URL ที่ปลอดภัยของ Base64:
- เปิดแท็บ Cloud Messaging ในแผงการตั้งค่าคอนโซล Firebase และเลื่อนไปที่ส่วนการกําหนดค่าเว็บ
- ในแท็บใบรับรองพุชจากเว็บ ให้ค้นหาและเลือกข้อความลิงก์ "นําเข้าคู่คีย์ที่มีอยู่"
- ในกล่องโต้ตอบนําเข้าคู่คีย์ ให้ระบุคีย์สาธารณะและคีย์ส่วนตัวในช่องที่เกี่ยวข้อง แล้วคลิกนําเข้า คอนโซลจะแสดงสตริงคีย์สาธารณะและวันที่ที่เพิ่ม
เรียกโทเค็น OAuth2: ใช้ข้อมูลเข้าสู่ระบบเพื่อสร้างโทเค็นเพื่อการเข้าถึง
หากต้องการสร้างโทเค็นเพื่อการเข้าถึงสําหรับคําขอ คุณจะต้องย่อโทเค็นเพื่อการเข้าถึงแล้วเพิ่มลงในคําขอ HTTP
โหนด.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();
}
หากต้องการให้สิทธิ์เข้าถึง FCM โปรดขอขอบเขต
https://www.googleapis.com/auth/firebase.messaging
พารามิเตอร์
- การให้สิทธิ์:
Bearer <access_token>
ตั้งค่าพารามิเตอร์นี้ในส่วนหัว - คีย์การเข้ารหัส:
p256ecdsa=APPLICATION_PUBLIC_KEY
ตั้งค่าพารามิเตอร์นี้ในส่วนหัว - เนื้อหาของคําขอ:
PushSubscription.toJson()
ส่งการสมัครใช้บริการ Push ไปยังส่วนเนื้อหา HTTP โดยไม่ต้องแยกวิเคราะห์ เนื้อหาตรงกับการเข้ารหัส W3C ของPushSubscription
คำตอบ
เมื่อสําเร็จ การเรียกจะแสดงสถานะ HTTP 200 OK และเนื้อหาผลลัพธ์ JSON ที่มีโทเค็น IID
ตัวอย่างคําขอ 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"
}
}
ตัวอย่างผลการค้นหา
HTTP 200 OK
{
"token":"KctODamlM4:CKrh_PC...cl"
}
อัปเดตการสมัครใช้บริการ Push
คุณสามารถอัปเดตการสมัครใช้บริการแบบพุชที่เชื่อมโยงกับโทเค็นการลงทะเบียนได้โดยใช้ปลายทางต่อไปนี้
https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN:refresh
พารามิเตอร์
- การให้สิทธิ์:
Bearer <access_token>
ตั้งค่าพารามิเตอร์นี้ในส่วนหัว - คีย์การเข้ารหัส:
p256ecdsa=APPLICATION_PUBLIC_KEY
ตั้งค่าพารามิเตอร์นี้ในส่วนหัว - เนื้อหาของคําขอ:
PushSubscription.toJson()
ส่งการสมัครใช้บริการ Push ไปยังส่วนเนื้อหา HTTP โดยไม่ต้องแยกวิเคราะห์ เนื้อหาตรงกับการเข้ารหัส W3C ของPushSubscription
ผลลัพธ์
เมื่อสําเร็จ การเรียกใช้จะแสดงสถานะ HTTP 200 และโทเค็นการลงทะเบียน ซึ่งอาจเป็นโทเค็นเดียวกันกับที่คุณส่งในคําขอหรือโทเค็นใหม่
HTTP 200 OK
{
"token":"KctODamlM4:CKrh_PC...cl"
}
ตัวอย่างคําขอ 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"
}
}
ตัวอย่างผลการค้นหา
HTTP 200 OK
{
"token":"KctODamlM4:CI2k_HHw...3P1"
}
ลบการสมัครใช้บริการ Push
คําขอ DELETE
จะนํารายละเอียดการสมัครใช้บริการ Push ออกจากฐานข้อมูล FCM คุณจะยังคงรับข้อความในเว็บแอปพลิเคชันได้โดยใช้โปรโตคอล Push API
หากต้องการลบการสมัครใช้บริการแบบพุช ให้ส่งคําขอ DELETE
ไปที่
https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN
ตัวอย่างคําขอ DELETE
https://iid.googleapis.com/v1/web/iid/KctODamlM4:CI2k_HHw...3P1
Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
ตัวอย่างผลการค้นหา
HTTP 200 OK {}
การตอบกลับข้อผิดพลาด
การเรียก API เซิร์ฟเวอร์อินสแตนซ์ของอินสแตนซ์จะแสดงผลรหัสข้อผิดพลาด HTTP ต่อไปนี้
HTTP status 400 (Bad request)
- พารามิเตอร์คําขอหายไปหรือไม่ถูกต้อง ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อดูข้อมูลโดยละเอียดHTTP status 401 (Unauthorized)
- ส่วนหัวการให้สิทธิ์ไม่ถูกต้องHTTP status 403 (Forbidden)
- ส่วนหัวการให้สิทธิ์ไม่ตรงกับauthorizedEntity
HTTP status 404 (Not found)
- ไม่พบเส้นทาง HTTP หรือโทเค็น IID ที่ไม่ถูกต้อง ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อดูข้อมูลโดยละเอียดHTTP status 503 (Service unavailable)
- บริการไม่พร้อมใช้งาน ลองส่งคําขอซ้ําด้วย Exponential Backoff