إضافة Salesforce

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

الإصدار: 1.0.5

الوصول إلى البيانات في حسابك على 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 المحدّدة:
    • الوصول إلى بياناتك وإدارتها (واجهة برمجة التطبيقات)
    • تنفيذ الطلبات نيابةً عنك في أي وقت (refresh_token وoffline_access)
  11. انقر على حفظ. في حال حدوث أي أخطاء، قد تحتاج إلى إعادة إنشاء ملف salesforce.crt وتحميله.
  12. في صفحة التطبيق الناتجة، انقر على إدارة.
  13. في صفحة "مدير التطبيقات" للتطبيق الذي أنشأته للتو، انقر على تعديل السياسات.
  14. ضمن سياسات OAuth، انقر على القائمة المنسدلة المستخدمون المسموح لهم، ثم انقر على المستخدمون الذين وافق عليهم المشرف لديهم إذن مسبق.
  15. انقر على حفظ.
  16. في صفحة التطبيق، انقر على إدارة الملفات الشخصية ضمن الملفات الشخصية.
  17. في صفحة منح الملف الشخصي للتطبيق، ضَع علامة في مربّعات الاختيار لملفات المستخدمين الشخصية التي يمكنها استخدام هذا التطبيق.

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

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

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

لمحة عن Salesforce

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

المهام

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 الحد الأقصى: 1000. مصفوفة بلا عُري نعم.
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 يجب أن يتضمّن كل سجلّ تريد تعديله قيمة رقم تعريف السجلّ. الحد الأقصى: 1000. مصفوفة بلا عُري نعم.
allOrNone true لإيقاف التحديث بالكامل في حال تعذّر إجراء أي جزء من التحديث منطقي خطأ لا.

الردّ

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

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

استرداد

استرداد السجلّات كعناصر sObjects حسب معرّفاتها تعرِض جميع حقول نوع 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 للسجلّات التي تريد استردادها. سلسلة بلا عُري نعم.
ids مصفوفة من سجلّات أرقام تعريف sObject المطلوب استردادها الحد الأقصى: 1000. مصفوفة بلا عُري نعم.
allOrNone true لإيقاف العملية بأكملها في حال تعذّر أي جزء من الطلب منطقي خطأ لا.

الردّ

صفيف records من sObjects يتم تمثيله بتنسيق 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 عدد السجلات التي يعرضها الاستعلام عدد صحيح بلا عُري نعم.
سجلات صفيف السجلات المعروضة بتنسيق sObjects في ملف JSON الحد الأقصى: 1000. مصفوفة بلا عُري نعم.
تم 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 تحتوي على sObjects المدرَجة بتنسيق 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 للسجلّات المطلوب حذفها. سلسلة بلا عُري نعم.
ids صفيف من أرقام تعريف sObject للسجلّات المطلوب حذفها الحد الأقصى: 1000. مصفوفة بلا عُري نعم.

الردّ

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

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

getAccessToken

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

البنية

<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 اكتب رمز الوصول. سلسلة الحامل نعم.

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

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

سمات الإضافات الشائعة

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

الموقع الوصف تلقائي عنصر مطلوب
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. بلا عُري نعم.