أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
الإصدار: 1.0.2
الوصول إلى البيانات في حسابك في Salesforce. إدراج البيانات وتحديثها واستردادها والاستعلام عنها
يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها.
المتطلبات الأساسية
يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، عليك إجراء ما يلي:
أنشئ مفتاحًا خاصًا/شهادة اعتماد RSA x509.
ستستخدم المفتاح الخاص (.key) كبيانات اعتماد عند ضبط الإضافة. ستستخدم ملف الشهادة (.crt) عند إنشاء تطبيق مرتبط يمنح الإضافة إذن الوصول إلى Salesforce.
openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
-
سيوفّر التطبيق المرتبط في Salesforce إذن الوصول إلى إضافة Salesforce. يمكنك الاطّلاع على التعليمات أدناه لإعداد التطبيق.
الحصول على مفتاح المستهلك للتطبيق المرتبط. ستستخدم الإضافة هذا الإذن عند المصادقة مع التطبيق.
- في إعداد Salesforce، انتقِل إلى التطبيقات > في شريط التنقّل الأيمن. مدير التطبيقات
- في القائمة، حدِّد موقع التطبيق المرتبط الذي أنشأته.
- من القائمة المنسدلة على يسار صف التطبيق، انقر على عرض.
- ضمن واجهة برمجة التطبيقات (تفعيل إعدادات OAuth)، حدِّد موقع مفتاح العميل وانسخ قيمته إلى مكان آمن لاستخدامه عند ضبط الإضافة.
إعداد تطبيق مرتبط للوصول إليه حسب الإضافة
قبل أن تتمكّن إضافة Salesforce من الوصول إلى Salesforce، عليك إنشاء تطبيق مرتبط على Salesforce يمكن من خلاله ربط الإضافة بخدمة Salesforce.
في Salesforce، يوفّر التطبيق المرتبط طريقة للتطبيقات الخارجية لربط Salesforce من خلال واجهات برمجة التطبيقات.
لإعداد تطبيق مرتبط
- سجِّل الدخول إلى Salesforce.
- انقر على رمز الترس في أعلى اليسار، ثم انقر على إعداد.
- في شريط التنقل على اليمين، وسِّع التطبيقات > مدير التطبيقات
- في صفحة مدير التطبيقات، انقر على تطبيق مرتبط جديد.
- ضمن المعلومات الأساسية، املأ الحقول المطلوبة. القيم هي للمحاسبة؛ فلن يتم استخدامها بواسطة الإضافة.
- ضمن واجهة برمجة التطبيقات (تفعيل إعدادات OAuth)، ضع علامة في مربّع الاختيار تفعيل إعدادات OAuth.
- على الرغم من عدم استخدامها بواسطة الإضافة، أدخِل عنوان URL لمعاودة الاتصال. يمكنك استخدام
http://localhost/
أو مضيف عنصر نائب آخر. - ضَع علامة في مربّع الاختيار استخدام التوقيعات الرقمية.
- ضمن استخدام التوقيعات الرقمية، انقر على اختيار ملف لتحديد موقع
salesforce.crt
الذي أنشأته سابقًا وتحميله. - في قسم نطاقات OAuth المحدّدة، أضِف ما يلي حتى يكون ضمن نطاقات OAuth المحدّدة:
- الوصول إلى بياناتك وإدارتها (واجهة برمجة التطبيقات)
- تنفيذ الطلبات نيابةً عنك في أي وقت (refresh_token وoffline_access)
- انقر على حفظ. في حال حدوث أي أخطاء، قد تحتاج إلى إعادة إنشاء ملف
salesforce.crt
وتحميله. - في صفحة التطبيق الناتجة، انقر على إدارة.
- في صفحة "مدير التطبيقات" للتطبيق الذي أنشأته للتو، انقر على تعديل السياسات.
- ضمن سياسات OAuth، انقر على القائمة المنسدلة المستخدمون المسموح لهم، ثم انقر على المستخدمون الموافَق عليهم من قِبل المشرف مفوَّضون مسبقًا.
- انقر على حفظ.
- ارجع إلى صفحة التطبيق، ضمن الملفات الشخصية، وانقر على إدارة الملفات الشخصية.
في صفحة تعيين الملف الشخصي للتطبيق، حدد مربعات الاختيار للملفات الشخصية للمستخدمين الذين يمكنهم استخدام هذا التطبيق.
تأكد من تحديد ملف شخصي يتوافق مع المستخدم الذي ستستخدم اسم المستخدم الخاص به عند تهيئة الإضافة. عليك أيضًا التأكّد من أنّ مستخدمي مشرف النظام على الأقلّ لديهم إذن الوصول إلى هذا التطبيق.
يمكنك الاطّلاع على إعداد الملف الشخصي للمستخدِم في Salesforce. في منطقة الإعداد، وسِّع المستخدمون > المستخدمون، حدِّد موقع المستخدم الذي ستمثله الإضافة، ثم حدِّد موقع ملفه الشخصي في عمود الملف الشخصي.
انقر على حفظ.
لمحة عن 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 | مصفوفة من الأخطاء، إن وجدت، أثناء التنفيذ. | مصفوفة | بلا عُري | نعم. |
استرداد
استرداد السجلّات بتنسيق 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 من السجلات المطلوب استرداده. | سلسلة | بلا عُري | نعم. |
أرقام التعريف | مصفوفة من سجلات معرّفات sObject لاستردادها. الحد الأقصى: 1,000 | مصفوفة | بلا عُري | نعم. |
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. الحد الأقصى: 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 | لا. |
اقتطاع | يجب إزاحة السجلات إلى القائمة. | عدد صحيح | 0 |
لا. |
الرد
مصفوفة records
تحتوي على عناصر معروضة بتنسيق 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.
البنية
<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 الذي أنشأته في الخطوات أعلاه. وعند إرسالها عبر واجهة برمجة تطبيقات الإدارة، تكون قيمة بترميز base64 يتم إنشاؤها من ملف salesforce.key. | بلا عُري | نعم. |
اسم مستخدم Salesforce | اسم المستخدم المرتبط بالتطبيق المرتبط الذي أنشأته. ستستخدم إضافة Salesforce هذا الإذن للحصول على تفويض من Salesforce. | بلا عُري | نعم. |