واجهة برمجة تطبيقات معرّف المثيل
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح لك واجهة برمجة التطبيقات Instance ID API دمج معرّف Instance ID مع تطبيق Android
أو iOS. يقدّم معرّف Instance ID معرّفًا فريدًا لكل نسخة افتراضية من
تطبيقك وآلية لمصادقة الإجراءات وتفويضها. يبقى InstanceID
لفترة طويلة، ولكن قد تنتهي صلاحيته للأسباب التالية:
- إعادة ضبط الجهاز على الإعدادات الأصلية
- يُلغي المستخدم تثبيت التطبيق.
- ينفِّذ المستخدم "محو البيانات" في التطبيق.
- الجهاز الذي لم يتم استخدامه لفترة طويلة (يحدّد الجهاز والمنطقة
المدّة الزمنية)
- ترصد خدمة "معرّف النسخة" إساءة الاستخدام أو الأخطاء وتعيد ضبط
InstanceID
.
- الرمز البرمجي من جهة الخادم إذا كان تطبيق العميل يتطلّب هذه الوظيفة
تُرسِل خدمة Instance ID إشعارًا إلى تطبيقك بشأن إعادة ضبط InstanceID
من خلال إعلام InstanceIDListenerService
. إذا تلقّى تطبيقك هذا
الإشعار، يجب أن يتصل بخدمة getToken()
ويسترجع InstanceID
الجديد،
ويُجري تعديلات على خوادمه.
استخدِم طريقة getToken
لإثبات ملكية InstanceID
والسماح
للخوادم بالوصول إلى البيانات أو الخدمات المرتبطة بالتطبيق. وتتّبع الطريقة
أنماط بروتوكول OAuth2، وتتطلّب authorizedEntity
وscope
. يمكن أن يكون
authorizedEntity
معرّف مشروع أو InstanceID
آخر، وهو يحدّد
الخدمات المفوَّضة باستخدام الرمز المميّز الذي تم إنشاؤه. يحدِّد scope
الخدمة أو البيانات المحدّدة التي يسمح الرمز المميّز بالوصول إليها.
اطّلِع على مزيد من المعلومات عن واجهة برمجة التطبيقات Instance ID API في ما يلي:
Android
iOS
الخادم
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe Instance ID API provides a unique identifier for each app instance and enables authentication and authorization.\u003c/p\u003e\n"],["\u003cp\u003eInstance IDs are long-lived but can expire due to various factors like device reset, uninstallation, data clearing, extended inactivity, or service-detected issues.\u003c/p\u003e\n"],["\u003cp\u003eUpon Instance ID reset, apps are notified and must retrieve a new ID using \u003ccode\u003egetToken()\u003c/code\u003e and update their servers.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egetToken()\u003c/code\u003e method, using OAuth2 patterns, verifies Instance ID ownership and grants server access to associated data or services based on authorized entity and scope.\u003c/p\u003e\n"]]],[],null,["# Instance ID API\n\nThe Instance ID API lets you integrate Instance ID with your Android\nor iOS app. Instance ID provides a unique identifier for each instance of\nyour app and a mechanism to authenticate and authorize actions. The `InstanceID` is long\nlived, but may expire for the following reasons:\n\n- Device factory reset.\n- User uninstalls the app.\n- User performs \"Clear Data\" in the app.\n- Device unused for an extended period (device and region determines the timespan).\n- Instance ID service detects abuse or errors and resets the `InstanceID`.\n- Server-side code if your client app requires that functionality.\n\nThe Instance ID service notifies your app of an `InstanceID` reset via\ncallback to a `InstanceIDListenerService`. If your app receives this\nnotification, it must call `getToken()` and retrieve the new `InstanceID`,\nand update its servers.\n\nUse the `getToken` method to prove the ownership of the `InstanceID` and to allow\nservers to access data or services associated with the app. The method follows\nthe patterns of OAuth2, and requires an `authorizedEntity` and `scope`. The\n`authorizedEntity` can be a project ID or another `InstanceID`, and it determines\nthe services that are authorized to use the generated token. The `scope`\ndetermines the specific service or data to which the token allows access.\n\nLearn more about the Instance ID API for:\n\n[Android](/instance-id/reference/android/api)\n[iOS](/instance-id/reference/ios/api)\n[Server](/instance-id/reference/server)"]]