إضافة Salesforce

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

الإصدار: 1.0.3

الوصول إلى البيانات في حسابك على 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 هي منصّة لإدارة العلاقات مع العملاء (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>

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

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

الإجابة

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

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
الموقع الوصف Type تلقائي مطلوبة
results[*].id رقم تعريف sObject الذي تم إنشاؤه للسجلّ الجديد سلسلة بلا عُري نعم.
.results[*].success true إذا تم إدراج هذا السجلّ بنجاح. منطقي بلا عُري نعم.
نتائج[*].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>

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

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

الإجابة

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

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
المَعلمة الوصف Type تلقائي مطلوبة
results[*].id رقم تعريف sObject الذي تم إنشاؤه للسجلّ المعدَّل. سلسلة بلا عُري نعم.
.results[*].success true إذا تم إدراج هذا السجلّ بنجاح. منطقي بلا عُري نعم.
نتائج[*].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>

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

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

الإجابة

يتم تمثيل مصفوفة 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>

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

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

الإجابة

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

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

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

المَعلمة الوصف Type تلقائي مطلوبة
كائن نوع sObject للسجلات المطلوب سردها. سلسلة بلا عُري نعم.
الحدّ الأقصى المسموح به الحد الأقصى لعدد السجلات المراد عرضها. عدد صحيح 1,000 لا.
إزاحة إزاحة لإدراج السجلات. عدد صحيح 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>

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

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

الإجابة

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

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
الموقع الوصف Type تلقائي مطلوبة
results[*].id تم تحديد معرّف sObject للسجلّ. سلسلة بلا عُري نعم.
.results[*].success true إذا نجحت العملية للسجل. منطقي بلا عُري نعم.
نتائج[*].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"
}
الموقع الوصف Type تلقائي مطلوبة
accessToken رمز الدخول. سلسلة بلا عُري نعم.
نطاق النطاقات التي يوفر الرمز المميّز إمكانية الوصول من خلالها. سلسلة بلا عُري نعم.
instanceUrl عنوان URL للمثيل الذي تستخدمه مؤسسة Salesforce. سلسلة بلا عُري نعم.
id رقم تعريف التطبيق المرتبط. سلسلة بلا عُري نعم.
tokenType اكتب رمز الدخول. سلسلة الحامل نعم.

مرجع التكوين

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

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

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

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

الخصائص لحزمة الإضافات هذه

يمكنك تحديد قيم لخصائص الإعداد التالية الخاصة بهذه الإضافة.

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