إضافة Salesforce

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

الإصدار: 2.0.1

الوصول إلى البيانات في حسابك على Salesforce إدراج البيانات وتعديلها واستردادها والاستعلام عنها

يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها.

المتطلبات الأساسية

يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، يجب إجراء ما يلي:

  1. أنشئ مفتاحًا خاصًا أو زوج شهادات RSA x509.

    ستستخدم المفتاح الخاص (.key) كبيانات اعتماد عند ضبط الإضافة. ستستخدم ملف الشهادة (.crt) عند إنشاء تطبيق مرتبط يمنح الإضافة إذن الوصول إلى Salesforce.

    openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
    
    
  2. إعداد تطبيق مرتبط

    سيوفّر تطبيق Salesforce المرتبط إمكانية الوصول إلى إضافة Salesforce. اطّلِع على تعليمات إعداد التطبيق.

  3. احصل على مفتاح المستهلك للتطبيق المرتبط. ستستخدم الإضافة هذا المفتاح عند المصادقة باستخدام التطبيق.

    1. في إعداد Salesforce، انتقِل إلى التطبيقات > إدارة التطبيقات في شريط التنقّل الأيمن.
    2. في القائمة، حدِّد موقع التطبيق المرتبط الذي أنشأته.
    3. من القائمة المنسدلة على اليسار في صف التطبيق، انقر على عرض.
    4. ضمن واجهة برمجة التطبيقات (تفعيل إعدادات OAuth)، ابحث عن مفتاح المستهلك وانسخ قيمته إلى مكان آمن لاستخدامه عند ضبط إعدادات الإضافة.

إعداد تطبيق مرتبط للسماح للإضافة بالوصول إليه

قبل أن تتمكّن إضافة Salesforce من الوصول إلى Salesforce، عليك إنشاء تطبيق Salesforce مرتبط يمكن من خلاله ربط الإضافة بـ Salesforce.

في Salesforce، يوفّر تطبيق مرتبط طريقة لربط التطبيقات الخارجية بـ Salesforce من خلال واجهات برمجة التطبيقات.

لإعداد تطبيق مرتبط، اتّبِع الخطوات التالية:

  1. سجِّل الدخول إلى Salesforce.
  2. انقر على رمز الترس في أعلى يسار الصفحة، ثم انقر على الإعداد.
  3. في شريط التنقّل على يمين الصفحة، وسِّع التطبيقات > إدارة التطبيقات.
  4. في صفحة إدارة التطبيقات، انقر على تطبيق مرتبط جديد.
  5. ضمن المعلومات الأساسية، املأ الحقول المطلوبة. هذه القيم مخصّصة لحفظ السجلات، ولا تستخدمها الإضافة.
  6. ضِمن واجهة برمجة التطبيقات (تفعيل إعدادات OAuth)، ضَع علامة في مربّع الاختيار تفعيل إعدادات OAuth.
  7. على الرغم من أنّ الإضافة لا تستخدم عنوان URL لرد الاتصال، عليك إدخاله. يمكنك استخدام http://localhost/ أو مضيف عنصر نائب آخر.
  8. ضَع علامة في مربّع الاختيار استخدام التوقيعات الرقمية.
  9. ضمن استخدام التواقيع الرقمية، انقر على اختيار ملف لتحديد موقع salesforce.crt الذي أنشأته سابقًا وتحميله.
  10. في قسم نطاقات OAuth المحدّدة، أضِف ما يلي ليكون ضمن نطاقات OAuth المحدّدة:
    • الوصول إلى بياناتك وإدارتها (api)
    • تنفيذ الطلبات نيابةً عنك في أي وقت (refresh_token وoffline_access)
  11. انقر على حفظ. في حال حدوث أي أخطاء، قد تحتاج إلى إعادة إنشاء ملف salesforce.crt وتحميله.
  12. في صفحة التطبيق الناتجة، انقر على إدارة.
  13. في صفحة "إدارة التطبيقات" للتطبيق الذي أنشأته للتو، انقر على تعديل السياسات.
  14. ضمن سياسات OAuth، انقر على القائمة المنسدلة المستخدمون المسموح لهم، ثم انقر على يتم منح المستخدمين الذين وافق عليهم المشرف إذن الوصول مسبقًا.
  15. انقر على حفظ.
  16. بالعودة إلى صفحة التطبيق، انقر على إدارة الملفات الشخصية ضمن الملفات الشخصية.
  17. في صفحة تعيين ملف التطبيق، ضَع علامة في مربّعات ملفات المستخدمين التي يمكنها استخدام هذا التطبيق.

    احرص على اختيار ملف دفع يتوافق مع المستخدم الذي ستستخدم اسم المستخدم الخاص به عند إعداد الإضافة. تأكَّد أيضًا من أنّ مستخدمي "مشرف النظام" على الأقل لديهم إذن الوصول إلى هذا التطبيق.

    يمكنك الاطّلاع على إعدادات الملف الشخصي للمستخدم في Salesforce. في منطقة الإعداد، وسِّع المستخدمون > المستخدمون، وابحث عن المستخدم الذي سيمثّله الامتداد، ثم ابحث عن ملفه الشخصي في عمود الملف الشخصي.

  18. انقر على حفظ.

لمحة عن Salesforce

Salesforce هي منصة لإدارة علاقات العملاء (CRM). تساعد إدارة العلاقات مع العملاء الشركات في فهم احتياجات عملائها وحلّ المشاكل من خلال إدارة معلومات العملاء وتفاعلاتهم بشكل أفضل، وكل ذلك على منصة واحدة يمكن الوصول إليها دائمًا من أي كمبيوتر أو جهاز.

الإجراءات

insert

إدراج السجلات كـ أنواع sObject

البنية

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records":[ records-to-insert ],
  "allOrNone": true | false
}]]></Input>

مثال

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { "Name": "MyAccountName" }
  ],
  "allOrNone": true
}]]></Input>

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
sobject نوع sObject للسجلات التي سيتم إدراجها سلسلة بلا عُري نعم.
سجلات مصفوفة لسجلات sObject بتنسيق JSON الحد الأقصى: 1,000 مصفوفة بلا عُري نعم.
allOrNone true لتعذُّر عملية التعديل بأكملها في حال تعذُّر أي جزء منها منطقي خطأ لا.

الردّ

صفيف results يتضمّن نتائج عملية الإدراج

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
الموقع الوصف النوع تلقائي مطلوب
results[*].id معرّف sObject الذي تم إنشاؤه للسجلّ الجديد سلسلة بلا عُري نعم.
results[*].success true إذا نجحت عملية إدراج هذا السجلّ. منطقي بلا عُري نعم.
results[*].errors مصفوفة الأخطاء التي تم رصدها أثناء التنفيذ، إن وُجدت مصفوفة بلا عُري نعم.

تحديث

تعديل سجلات Salesforce

البنية

<Action>update</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records": [ records-to-update ],
  "allOrNone": true | false
}]]></Input>

مثال

<Action>update</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    {
      "id":"0011U00000LQ76KQAT",
      "Name": "MyNewAccountName"
    }
  ],
  "allOrNone": true
}]]></Input>

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
sobject نوع sObject للسجلات التي سيتم تعديلها سلسلة بلا عُري نعم.
سجلات مصفوفة لسجلات sObject بتنسيق JSON يجب أن يتضمّن كل سجلّ تريد تعديله قيمة المعرّف الخاص به. الحد الأقصى: 1,000 مصفوفة بلا عُري نعم.
allOrNone true لتعذُّر عملية التعديل بأكملها في حال تعذُّر أي جزء منها منطقي خطأ لا.

الردّ

صفيف results يحتوي على نتائج التعديل

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
المَعلمة الوصف النوع تلقائي مطلوب
results[*].id معرّف sObject الذي تم إنشاؤه للسجلّ المعدَّل. سلسلة بلا عُري نعم.
results[*].success true إذا نجحت عملية إدراج هذا السجلّ. منطقي بلا عُري نعم.
results[*].errors مصفوفة الأخطاء التي تم رصدها أثناء التنفيذ، إن وُجدت مصفوفة بلا عُري نعم.

الاسترداد

استرداد السجلات كعناصر sObject حسب أرقام تعريفها تعرض هذه الدالة جميع حقول نوع sObject.

البنية

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

مثال

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
sobject نوع sObject للسجلات المطلوب استردادها سلسلة بلا عُري نعم.
أرقام التعريف مصفوفة من سجلات أرقام تعريف sObject المطلوب استردادها الحد الأقصى: 1,000 مصفوفة بلا عُري نعم.
allOrNone true لتعذُّر العملية بأكملها في حال تعذُّر أي جزء من الطلب. منطقي خطأ لا.

الردّ

صفيفة records من عناصر sObject يتم تمثيلها بتنسيق JSON. يُرجى العِلم أنّ جميع سمات العناصر مضمّنة في JSON، حتى إذا كانت قيمة السمة فارغة.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

querySOQL

استعلام Salesforce.com باستخدام لغة طلبات البحث في عناصر Salesforce (SOQL)

البنية

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": soql-query-statement
}]]></Input>

مثال

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": "SELECT Id, Name FROM Account"
}]]></Input>

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
soql عبارة SOQL للاستعلام باستخدامها سلسلة بلا عُري نعم.

الردّ

نتائج طلب البحث

{
  totalSize: 2,
  records: [
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76KQAT',
      Name: 'AccountName1'
    },
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76LQAT',
      Name: 'AccountName2'
    }
  ],
  done: true
}
المَعلمة الوصف النوع تلقائي مطلوب
totalSize عدد السجلات التي يعرضها الاستعلام. عدد صحيح بلا عُري نعم.
سجلات مصفوفة من السجلات التي تم إرجاعها ككائنات sObject بتنسيق JSON الحد الأقصى: 1,000 مصفوفة بلا عُري نعم.
تم true إذا اكتملت عملية البحث. منطقي بلا عُري نعم.

قائمة

عرض سجلات Salesforce.com تعرض هذه الدالة جميع حقول نوع sObject المحدّد.

البنية

<Action>list</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "limit": max-number-of-records,
  "offset": record-index-at-which-to-begin-response-set
}]]></Input>

مثال

<Action>list</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "limit": 1000,
  "offset": 0
}]]></Input>

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
sobject نوع sObject للسجلات المطلوب إدراجها سلسلة بلا عُري نعم.
الحدّ الأقصى المسموح به الحدّ الأقصى لعدد السجلّات المطلوب عرضه. عدد صحيح 1000 لا.
offset إزاحة السجلات المطلوب إدراجها عدد صحيح 0 لا.

الردّ

مصفوفة records تحتوي على عناصر sObject مُدرَجة بتنسيق JSON.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

حذف

حذف السجلات التي تحمل أرقام التعريف المحدّدة

البنية

<Action>del</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

مثال

<Action>del</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
sobject نوع sObject للسجلات المطلوب حذفها سلسلة بلا عُري نعم.
أرقام التعريف مصفوفة من معرّفات sObject للسجلات المطلوب حذفها. الحد الأقصى: 1,000 مصفوفة بلا عُري نعم.

الردّ

مصفوفة results تحتوي على نتائج العملية.

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
الموقع الوصف النوع تلقائي مطلوب
results[*].id معرّف sObject للسجلّ المحدّد. سلسلة بلا عُري نعم.
results[*].success true إذا نجحت العملية في السجلّ. منطقي بلا عُري نعم.
results[*].errors مصفوفة الأخطاء التي تم رصدها أثناء التنفيذ، إن وُجدت مصفوفة بلا عُري نعم.

getAccessToken

الحصول على رمز الدخول إلى واجهة برمجة التطبيقات في Salesforce.com يمكن استخدامها لطلب بيانات من واجهات REST API.

البنية

<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>

مَعلمات الطلب

بلا عُري

الردّ

رمز الدخول بتنسيق JSON

{
  "accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
  "scope":"api",
  "instanceUrl": "https://na85.salesforce.com",
  "id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
  "tokenType": "Bearer"
}
الموقع الوصف النوع تلقائي مطلوب
accessToken رمز الدخول سلسلة بلا عُري نعم.
نطاق النطاقات التي يتيح الرمز المميز الوصول إليها سلسلة بلا عُري نعم.
instanceUrl عنوان URL للمثيل الذي تستخدمه مؤسسة Salesforce سلسلة بلا عُري نعم.
id معرّف التطبيق المرتبط سلسلة بلا عُري نعم.
tokenType اكتب رمز الدخول. سلسلة الحامل نعم.

مرجع الإعدادات

استخدِم ما يلي عند ضبط هذه الإضافة ونشرها لاستخدامها في خوادم API الوكيلة.

خصائص الإضافة الشائعة

السمات التالية متاحة لكل إضافة.

الموقع الوصف تلقائي عنصر مطلوب
name الاسم الذي تُعطِه هذه الإضافة من الإضافات. لا ينطبق متوافق
packageName اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. لا ينطبق متوافق
version رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. لا ينطبق متوافق
configuration قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه لا ينطبق متوافق

سمات حزمة الإضافة هذه

حدِّد قيمًا لخصائص الإعداد التالية الخاصة بهذا الامتداد.

الموقع الوصف تلقائي مطلوب
عنوان URL لخادم التفويض عنوان URL الذي سيتم استخدامه عند الحصول على إذن من Salesforce عادةً ما يكون هذا الرقم https://login.salesforce.com بلا عُري نعم.
مفتاح العميل للتطبيق المرتبط مفتاح المستهلك الذي توفّره Salesforce للتطبيق المرتبط الذي أنشأته راجِع التعليمات الواردة ضمن المتطلبات الأساسية لاسترداد مفتاح المستهلك. بلا عُري نعم.
بيانات الاعتماد عند إدخالها في وحدة تحكّم Apigee Edge، يكون هذا هو محتوى ملف salesforce.key الذي أنشأته في الخطوات. عند إرسالها باستخدام Management API، تكون قيمة بترميز base64 تم إنشاؤها من ملف salesforce.key. بلا عُري نعم.
اسم مستخدم Salesforce اسم المستخدم المرتبط بالتطبيق المرتبط الذي أنشأته ستستخدم إضافة Salesforce هذا المعرّف للحصول على إذن من Salesforce. بلا عُري نعم.