الحسابات المتصلة
اربط حسابات Google وFacebook وApple Business Connect، وطابق إدراجات الأنشطة التجارية التابعة لها مع المواقع، وافصل الحسابات عبر client.connected_accounts.
جميع أساليب الحسابات المتصلة موجودة ضمن client.connected_accounts. الحساب المتصل هو حساب تسجيل دخول واحد إلى Google Business Profile أو Facebook Pages أو Apple Business Connect منح المنصة تفويضًا، ويُحدَّد بواسطة connectedAccountId تحصل عليه من connected_accounts.list.
هناك طريقتان للاتصال. يمنح مسار الاتصال الجماعي تفويضًا لحساب منصة نشر بالكامل، ثم يطابق إدراجات الأنشطة التجارية فيه مع مواقعك. ينشئ مسار الاتصال لموقع واحد رابط OAuth واحدًا لموقع واحد، وهو ما تحتاج إليه عندما يربط تطبيقك المتاجر واحدًا تلو الآخر. تقبل الأساليب التي تأخذ location_id معرّفات رقمية أو معرّفات مرمّزة بصيغة base64، راجع معرّفات المواقع.
مسار المطابقة
بعد الاتصال الجماعي، لا تكون إدراجات الأنشطة التجارية لدى منصة النشر مرتبطة بمواقعك بعد. استدعِ trigger_matches لإضافة مهمة المطابقة إلى قائمة الانتظار، واستعلم دوريًا من details حتى تصبح قيمة requestMatchesStatus هي MATCH_COMPLETED، واقرأ أزواج المطابقة باستخدام suggestions، ثم اعتمد ما تريده منها باستخدام confirm_matches. يؤدي تخطي trigger_matches إلى إبقاء suggestions فارغًا.
connected_accounts.connect_google
أنشئ عنوان URL يمنح تفويضًا لحساب Google Business Profile بالكامل. وجّه المستخدم إليه، وسيعود إلى success_url أو error_url. الرابط صالح لمدة 24 ساعة.
client.connected_accounts.connect_google( success_url: str, error_url: str,) -> APIObjectlink = client.connected_accounts.connect_google( "https://app.example.com/onboarding/google/done", "https://app.example.com/onboarding/google/retry",)print(link.url)يُرجع الكائن bulkConnectLinkForGoogle. اقرأ url، وتحقق من success وerrors. يجب أن يكون عنوانا URL لإعادة التوجيه عنوانين مطلقين يستخدمان https. راجع ربط حساب Google.
connected_accounts.connect_facebook
مثل connect_google، ولكن لحساب Facebook Pages. صالح لمدة 24 ساعة.
client.connected_accounts.connect_facebook( success_url: str, error_url: str,) -> APIObjectlink = client.connected_accounts.connect_facebook( "https://app.example.com/onboarding/facebook/done", "https://app.example.com/onboarding/facebook/retry",)print(link.url)يُرجع الكائن bulkConnectLinkForFacebook، بالحقول نفسها url وsuccess وerrors. راجع ربط حساب Facebook.
connected_accounts.oauth_url
أنشئ عنوان URL يربط ملفًا تعريفيًا واحدًا على منصة نشر بموقع واحد. استخدم هذا عندما تعرف مسبقًا الموقع الذي يربطه المستخدم، فلا تحتاج إلى خطوة مطابقة. صالح لمدة 24 ساعة.
client.connected_accounts.oauth_url( location_id: str | int, site: str, success_url: str, error_url: str,) -> APIObjectlink = client.connected_accounts.oauth_url( 16808, site="google", success_url="https://app.example.com/locations/16808?connected=1", error_url="https://app.example.com/locations/16808?connected=0",)print(link.url)يُرجع الكائن createConnectUrl. إذا كان عنوان إعادة التوجيه نسبيًا أو تعذّر تحليله، تكون النتيجة success: true مع null url، لذا تحقق من url نفسه ولا تكتفِ بالتحقق من success. الرابط مخصص للاستخدام مرة واحدة، لذا أنشئ رابطًا جديدًا لكل محاولة. راجع إنشاء عنوان URL للاتصال عبر OAuth لموقع واحد.
connected_accounts.list
اعرض قائمة بحسابات Google وFacebook المتصلة بحسابك. من هنا تحصل على connectedAccountId الذي يحتاج إليه كل استدعاء لاحق.
client.connected_accounts.list( *, publisher: str | None = None, status: str | None = None, page: int | None = None, per_page: int | None = None,) -> APIObjectaccounts = client.connected_accounts.list(status="CONNECTED", per_page=50)for account in accounts.records: print(account.connectedAccountId, account.email, account.connectedLocationsCount)print(accounts.pageInfo.totalRecords)يُرجع الكائن connectedAccountsInfo: records بالإضافة إلى pageInfo الذي يتضمن hasNextPage وtotalPages وtotalRecords. الترتيب ثابت وتصاعدي حسب البريد الإلكتروني للحساب. راجع عرض قائمة الحسابات المتصلة.
connected_accounts.details
اجلب حسابًا متصلًا واحدًا باستخدام معرّفه. استعلم دوريًا باستخدام هذا الأسلوب بعد trigger_matches وانتظر حتى تصل قيمة requestMatchesStatus إلى MATCH_COMPLETED.
client.connected_accounts.details(connected_account_id: str) -> APIObjectaccount = client.connected_accounts.details("4f712c17-4f95-42dd-90f4-97171a2e67b5")print(account.details.get("status"))print(account.details.get("requestMatchesStatus"))يُرجع الكائن connectedAccountDetails. تقع الحقول ضمن details: status وconnectedAccountType وconnectedLocationsCount وconnectivityIssue وrequestMatchesStatus وlastFetchMatchesRequestedAt. إذا كانت قيمة connectivityIssue غير null، فهذا يعني أن رمز منصة النشر يحتاج إلى إعادة تفويض. راجع جلب تفاصيل الحساب المتصل.
connected_accounts.listings
اعرض قائمة بإدراجات الأنشطة التجارية لدى منصة النشر التي يمكن لحساب متصل الوصول إليها، سواء طوبقت مع أحد مواقعك أم لا. استخدم هذا لتعرض للمستخدم ما أصبح بإمكانك الوصول إليه.
client.connected_accounts.listings( connected_account_id: str, *, location_info: str | None = None, page: int | None = None, per_page: int | None = None,) -> APIObjectpage = client.connected_accounts.listings( "4f712c17-4f95-42dd-90f4-97171a2e67b5", location_info="Manhattan", per_page=25,)for listing in page.records: print(listing.locationName, listing.address, listing.accountTypeName)تستخدم نقطة النهاية هذه POST وتأخذ جميع الوسائط في جسم الطلب، لا في سلسلة الاستعلام؛ وتنشئ حزمة SDK هذا الجسم لك. تُرجع الكائن connectedAccountListings: records بالإضافة إلى pageInfo. يحتوي كل سجل على id وlocationName وaddress وphone وaccountTypeName وliveLink. راجع جلب إدراجات الأنشطة التجارية لحساب متصل.
connected_accounts.trigger_matches
أضف إلى قائمة الانتظار المهمة التي تسترجع كل ملف تعريفي يمكن للحسابات المحددة الوصول إليه وتطابقه مع مواقعك. شغّلها مباشرة بعد الاتصال الجماعي، ثم شغّلها مجددًا بعد إضافة مواقع.
client.connected_accounts.trigger_matches( connected_account_ids: list[str],) -> APIObjectresult = client.connected_accounts.trigger_matches( ["4f712c17-4f95-42dd-90f4-97171a2e67b5"],)print(result.success, result.failedIds)يُرجع الكائن connectedAccountsTriggerMatches الذي يتضمن success وfailedIds. يُنفَّذ العمل بصورة غير متزامنة، لذا تعني success: true أنه أُضيف إلى قائمة الانتظار، لا أنه اكتمل. استعلم دوريًا من details حتى تصبح قيمة requestMatchesStatus هي MATCH_COMPLETED قبل قراءة الاقتراحات. راجع بدء المطابقة.
connected_accounts.suggestions
اقرأ أزواج المطابقة التي عثرت عليها مهمة المطابقة بين إدراجات الأنشطة التجارية في الحساب ومواقعك. اعرضها على المستخدم لمراجعتها قبل تأكيدها.
client.connected_accounts.suggestions( connected_account_id: str, *, page: int | None = None, per_page: int | None = None,) -> APIObjectpage = client.connected_accounts.suggestions( "4f712c17-4f95-42dd-90f4-97171a2e67b5", per_page=50,)for match in page.records: print(match.locationId, match.accountType, match.matchedDataDatabaseId)يُرجع الكائن connectionSuggestionsForAccount: records بالإضافة إلى pageInfo. يحتوي كل سجل على locationId وaccountType وmatchedDataDatabaseId وlocationInfo وsuggestedLocationInfo. إذا كان records فارغًا مع totalRecords: 0، فهذا يعني عادةً أن مهمة المطابقة لم تُشغَّل بعد. راجع عرض قائمة اقتراحات الاتصال.
connected_accounts.confirm_matches
اعتمد أزواج المطابقة المقترحة. بمجرد تأكيدها، يبدأ إدراج النشاط التجاري لدى منصة النشر بالمزامنة مع الموقع المطابق.
client.connected_accounts.confirm_matches( match_record_ids: list[str],) -> APIObjectresult = client.connected_accounts.confirm_matches([ "R21iTG9jYXRpb25NYXRjaGVkRGF0YTowZDVlMzA2Zi0wZGEwLTQ2ZTMtOTI5Zi1mZDNjNjdjY2Q4Y2M=",])print(result.success, result.failedIds)يُرجع الكائن confirmConnectMatches الذي يتضمن success وfailedIds. لا يملك سجل الاقتراح id خاصًا به: أنشئ معرّف كل سجل مطابقة من matchedDataDatabaseId وaccountType في السجل، كما هو موضح في تأكيد المطابقات.
connected_accounts.folders
اعرض قائمة بالمجلدات (تسميها Google مجموعات الحسابات) التي يمكن لحساب Google متصل الوصول إليها. مرّر folderId الذي اخترته عند إنشاء إدراج نشاط تجاري على Google ليُنشأ في المكان الصحيح.
client.connected_accounts.folders( connected_account_id: str, *, folder_name: str | None = None,) -> list[APIObject]folders = client.connected_accounts.folders( "4f712c17-4f95-42dd-90f4-97171a2e67b5",)for folder in folders: print(folder.folderId, folder.folderName, folder.locationCount)يُرجع القائمة getFoldersUnderGoogleAccount. يحتوي كل عنصر على folderId (سلسلة نصية من نوع accounts/{id} تُستخدم دون تغيير)، وfolderName، وlocationCount الذي تكون قيمته null عندما لا تُبلغ Google عن العدد. لحسابات نوع Google فقط. راجع عرض قائمة المجلدات وlistings.create_gmb.
connected_accounts.disconnect_google
افصل حساب Google بالكامل. يتوقف كل موقع جرت مطابقته من خلاله عن المزامنة مع Google.
client.connected_accounts.disconnect_google( connected_account_id: str,) -> APIObjectresult = client.connected_accounts.disconnect_google( "4f712c17-4f95-42dd-90f4-97171a2e67b5",)print(result.success)يُرجع الكائن gmbBulkDisconnect الذي يتضمن success. راجع فصل حساب Google.
connected_accounts.disconnect_facebook
افصل حساب Facebook Pages بالكامل.
client.connected_accounts.disconnect_facebook( connected_account_id: str,) -> APIObjectresult = client.connected_accounts.disconnect_facebook( "9a41b8c0-7d2e-4c15-9f63-2b8e5ad71f04",)print(result.success)يُرجع الكائن fbBulkDisconnect الذي يتضمن success. راجع فصل حساب Facebook.
connected_accounts.oauth_disconnect
افصل موقعًا واحدًا عن منصة نشر واحدة، مع إبقاء بقية الحساب متصلًا. هذا هو الأسلوب المقابل لـ oauth_url.
client.connected_accounts.oauth_disconnect( location_id: str | int, site: str,) -> APIObjectتكون قيمة site هي GOOGLE أو FACEBOOK أو APPLE، وتحوّلها حزمة SDK إلى أحرف كبيرة قبل الإرسال.
client.connected_accounts.oauth_disconnect(16808, site="google")يُرجع الكائن disconnectConnectedAccountsLocations الذي يتضمن success وerrors. راجع فصل موقع واحد عن منصة نشر.
انظر أيضًا
- نقاط نهاية الحسابات المتصلة: نقاط نهاية REST التي يعتمد عليها هذا المورد
- ربط Google واستيراد المواقع: سير عمل الربط والمطابقة بشكل جماعي من البداية إلى النهاية
- ربط صفحات Facebook: الجزء الخاص بـ Facebook من سير العمل نفسه
- إنشاء ملف على Google Business Profile: استخدام
folderIdمنfolders - إدراجات الأنشطة التجارية: الربط وإلغاء الربط والتحقق من حالة المزامنة لكل موقع