ก่อนเริ่มต้น
ก่อนที่จะเริ่มใช้ Places SDK สําหรับ Android คุณต้องมีโปรเจ็กต์ที่มีบัญชีสําหรับการเรียกเก็บเงิน และเปิดใช้ Places SDK สําหรับ Android ดูข้อมูลเพิ่มเติมได้ที่ตั้งค่าใน Cloud Console
การสร้างคีย์ API
คีย์ API คือตัวระบุที่ไม่ซ้ําที่ตรวจสอบสิทธิ์คําขอที่เชื่อมโยงกับโปรเจ็กต์ของคุณเพื่อการใช้งานและการเรียกเก็บเงิน คุณต้องมีคีย์ API อย่างน้อย 1 รายการที่เชื่อมโยงกับโปรเจ็กต์
วิธีสร้างคีย์ API
คอนโซล
-
ไปที่หน้า Google Maps Platform &Credentials
-
ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API
กล่องโต้ตอบสร้างคีย์ API จะแสดงคีย์ API ที่สร้างใหม่ -
คลิกปิด
คีย์ API ใหม่จะปรากฏในหน้าข้อมูลเข้าสู่ระบบในส่วนคีย์ API
(อย่าลืมจํากัดคีย์ API ก่อนใช้งานจริง)
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
อ่านเพิ่มเติมเกี่ยวกับ Google Cloud SDK, การติดตั้ง Cloud SDK และคําสั่งต่อไปนี้
การจํากัดคีย์ API
Google ขอแนะนําอย่างยิ่งให้คุณจํากัดคีย์ API โดยจํากัดการใช้งานไว้สําหรับ API ที่จําเป็นสําหรับแอปพลิเคชันเท่านั้น การจํากัดคีย์ API จะเพิ่มการรักษาความปลอดภัยให้กับแอปพลิเคชันของคุณด้วยการปกป้องคีย์จากคําขอที่ไม่มีการรับประกัน ดูข้อมูลเพิ่มเติมได้ในแนวทางปฏิบัติแนะนําด้านความปลอดภัยของ API
เมื่อจํากัดคีย์ API คุณต้องระบุลายนิ้วมือสําหรับใบรับรอง SHA-1 ของคีย์ Signing ที่ใช้ลงนามแอปพลิเคชัน ใบรับรองมี 2 ประเภท ได้แก่
- แก้ไขข้อบกพร่องของใบรับรอง: ใช้เฉพาะใบรับรองประเภทนี้กับแอปที่คุณทดสอบและรหัสอื่นๆ ที่ไม่ได้ใช้งานจริงเท่านั้น อย่าพยายามเผยแพร่แอปที่รับรองด้วยใบรับรองการแก้ไขข้อบกพร่อง เครื่องมือ Android SDK จะสร้างใบรับรองนี้โดยอัตโนมัติเมื่อคุณเรียกใช้บิลด์การแก้ไขข้อบกพร่อง
- ใบรับรองรุ่น: ใช้ใบรับรองนี้เมื่อคุณพร้อมเผยแพร่แอปใน App Store เครื่องมือ Android SDK จะสร้างใบรับรองนี้เมื่อคุณเรียกใช้บิลด์ที่เผยแพร่
ดูข้อมูลเพิ่มเติมเกี่ยวกับใบรับรองดิจิทัลได้จากคู่มือรับรองแอป
โปรดดูวิธีรับลายนิ้วมือของใบรับรองที่หัวข้อการตรวจสอบสิทธิ์ไคลเอ็นต์ หากใช้ Play App Signing แทน คุณต้องไปที่หน้า App Signing ใน Play Console เพื่อรับลายนิ้วมือสําหรับใบรับรอง
วิธีจํากัดคีย์ API
คอนโซล
-
ไปที่หน้า Google Maps Platform &Credentials
- เลือกคีย์ API ที่ต้องการตั้งค่าข้อจํากัด หน้าคีย์คีย์ API จะปรากฏขึ้น
- ในส่วนการจํากัดคีย์ ให้ตั้งข้อจํากัดต่อไปนี้
- ข้อจำกัดแอปพลิเคชัน:
- เลือกแอป Android
- คลิก + เพิ่มชื่อแพ็กเกจและลายนิ้วมือ
- ป้อนชื่อแพ็กเกจและลายนิ้วมือสําหรับใบรับรอง SHA-1 เช่น
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- ข้อจำกัด API:
- คลิกจํากัดคีย์
- เลือก Places API จากเมนูแบบเลื่อนลงเลือก API หาก Places API ไม่อยู่ในรายการ คุณจะต้อง เปิดใช้งาน API นั้น
- คลิกบันทึกเพื่อเสร็จสิ้นการเปลี่ยนแปลง
Cloud SDK
แสดงคีย์ที่มีอยู่
gcloud services api-keys list --project="PROJECT"
ล้างข้อจํากัดที่มีอยู่ในคีย์ที่มีอยู่
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
กําหนดข้อจํากัดใหม่ในคีย์ที่มีอยู่
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api_target="places-backend.googleapis.com" --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"
อ่านเพิ่มเติมเกี่ยวกับ Google Cloud SDK, การติดตั้ง Cloud SDK และคําสั่งต่อไปนี้
การค้นหาข้อมูลใบรับรองของแอป
คีย์ API จะอิงตามรูปแบบดิจิทัลของใบรับรองดิจิทัลเวอร์ชันสั้นๆ ซึ่งเรียกว่าลายนิ้วมือ SHA-1 หากต้องการแสดงลายนิ้วมือ SHA-1 สําหรับใบรับรอง ก่อนอื่นให้ตรวจสอบว่าคุณใช้ใบรับรองที่ถูกต้อง คุณอาจมีใบรับรอง 2 ใบ ได้แก่
- ใบรับรองการแก้ไขข้อบกพร่อง: เครื่องมือ Android SDK จะสร้างใบรับรองนี้ขึ้นโดยอัตโนมัติเมื่อคุณสร้างบิลด์การแก้ไขข้อบกพร่อง ใช้ใบรับรองนี้กับแอปที่คุณทดสอบเท่านั้น อย่าพยายามเผยแพร่แอปที่เซ็นชื่อด้วยใบรับรองการแก้ไขข้อบกพร่อง ดูใบรับรองการแก้ไขข้อบกพร่องได้อย่างละเอียดมากขึ้นในหัวข้อการลงชื่อในโหมดแก้ไขข้อบกพร่องในเอกสารประกอบสําหรับนักพัฒนาซอฟต์แวร์ Android
- ใบรับรองรุ่น: เครื่องมือ Android SDK จะสร้างใบรับรองนี้เมื่อคุณสร้างรุ่น นอกจากนี้ คุณยังสร้างใบรับรองนี้ได้โดยใช้โปรแกรม
keytool
ใช้ใบรับรองนี้เมื่อพร้อมที่จะเผยแพร่แอปสู่สาธารณะแล้ว
การใช้ Gradle
Gradle ทําให้ข้อมูลการลงนามของแอปเป็นเรื่องง่ายมาก เพียงเรียกใช้ ./gradlew signingReport
เอาต์พุตควรมีลักษณะเช่นนี้
Task :app:signingReport Variant: debug Config: debug Store: ~/.android/debug.keystore Alias: AndroidDebugKey MD5: 76:4E:BF:C3:59:DA:D3:8F:98:D6:3C:DB:87:A4:5B:E7 SHA1: 99:8E:73:B8:3A:A3:A3:C4:C1:D4:19:08:F6:7E:9E:F6:75:29:4C:B2 SHA-256: 6C:01:12:53:90:94:73:B5:66:D6:07:FF:A5:6F:AB:30:AE:99:20:55:0F:B3:12:22:4C:46:7E:02:3D:7E:6D:1D Valid until: Friday, June 25, 2049 ---------- Variant: release Config: release Store: app/keystore.jks Alias: keystore MD5: 1E:63:0F:14:67:E0:04:BD:98:4C:EB:2B:09:EF:7E:1E SHA1: 2C:DF:9F:D1:A3:0D:1E:01:48:34:5D:91:52:0B:D8:8A:5A:07:45:C3 SHA-256: 12:66:CE:4B:90:FD:64:1A:4D:79:9E:78:AD:59:0C:21:D8:53:61:EE:2B:90:E4:67:CE:65:A0:76:04:13:23:89 Valid until: Tuesday, September 29, 2116
ด้วยตนเอง
ทําตามขั้นตอนด้านล่างเพื่อแสดงลายนิ้วมือ SHA-1 ของใบรับรองโดยใช้โปรแกรม keytool
ที่มีพารามิเตอร์ -v
ดูข้อมูลเพิ่มเติมเกี่ยวกับคีย์เครื่องมือได้ในเอกสารประกอบของ Oracle
ใบรับรองการแก้ไขข้อบกพร่อง
การแสดงลายนิ้วมือสำหรับใบรับรองการแก้ไขข้อบกพร่อง
ค้นหาไฟล์คีย์สโตร์การแก้ไขข้อบกพร่อง ชื่อไฟล์คือ
debug.keystore
และสร้างขึ้นในครั้งแรกที่คุณสร้างโปรเจ็กต์ โดยค่าเริ่มต้นแล้ว ระบบจะจัดเก็บไว้ในไดเรกทอรีเดียวกับไฟล์อุปกรณ์ Android (AVD) ของคุณ- macOS และ Linux:
~/.android/
- Windows Vista และ Windows 7:
C:\Users\your_user_name\.android\
- macOS และ Linux:
ใส่ลายนิ้วมือ SHA-1
สําหรับ Linux หรือ macOS ให้เปิดหน้าต่างเทอร์มินัลแล้วป้อนข้อมูลต่อไปนี้
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
สําหรับ Windows Vista และ Windows 7 ให้เรียกใช้คําสั่งต่อไปนี้
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
คุณควรเห็นเอาต์พุตคล้ายกับตัวอย่างด้านล่าง
Alias name: androiddebugkey Creation date: Jan 01, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4aa9b300 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
ใบรับรองรุ่น
แสดงลายนิ้วมือสำหรับใบรับรองรุ่น
-
ค้นหาไฟล์คีย์สโตร์ของใบรับรองการเผยแพร่ ไม่มีตําแหน่งหรือชื่อเริ่มต้นสําหรับคีย์สโตร์ของรุ่น หากคุณไม่ระบุไว้เมื่อคุณสร้างแอปเพื่อเปิดตัว บิลด์จะคงสถานะ
.apk
ต่อไปและคุณต้องลงนามแอปก่อน จึงจะเผยแพร่ได้ สําหรับใบรับรองรุ่น คุณต้องมีชื่อแทนของใบรับรองและรหัสผ่านสําหรับคีย์สโตร์และใบรับรองด้วย คุณระบุชื่อแทนของคีย์ทั้งหมดในคีย์สโตร์ได้โดยป้อนดังนี้keytool -list -keystore your_keystore_name
แทนที่
your_keystore_name
ด้วยเส้นทางและชื่อเต็มของคีย์สโตร์ รวมถึงส่วนขยาย.keystore
ระบบจะแจ้งให้คุณป้อนคีย์สโตร์' จากนั้นkeytool
จะแสดงชื่อแทนทั้งหมดในคีย์สโตร์ -
ป้อนข้อมูลต่อไปนี้ที่เครื่องชําระเงินหรือพรอมต์คําสั่ง
keytool -list -v -keystore your_keystore_name -alias your_alias_name
แทนที่
your_keystore_name
ด้วยเส้นทางและชื่อเต็มของคีย์สโตร์ รวมถึงส่วนขยาย.keystore
แทนที่your_alias_name
ด้วยชื่อแทนที่คุณกําหนดให้กับใบรับรองเมื่อสร้างขึ้น
คุณควรเห็นเอาต์พุตคล้ายกับตัวอย่างด้านล่าง
Alias name: <alias_name> Creation date: Feb 02, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4cc9b300 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
บรรทัดที่ขึ้นต้นด้วย SHA1
มีลายนิ้วมือ SHA-1 ของใบรับรอง ลายนิ้วมือคือลําดับตัวเลขฐานสิบหก 20 หลักที่คั่นด้วยโคลอน