php أوامر WordPress rest API OAuth curl



(1)

لدي هذا للعمل وسأوضح كيف فعلت هذا.

أنا أستخدم تطبيق Postman لاختبار مكالمات واجهة برمجة التطبيقات وإكمالها. أنا أنصح بشدة باستخدام هذا. بمجرد حصولك على المكالمة ، يمكنك التصدير إلى PHP Curl (أو أي شيء تحتاجه).

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

بالنسبة إلى المكالمة الأولى ، تواجهك مشكلة عندما أجد الإعدادات التالية

أولاً ، لقد تأكدت من أن عنوان URL للنقطة النهائية كان:

{{url}}/oauth1/request

لقد قمت بتعيين استدعاء API الخاص بي إلى PUSH و AuthType الخاص بي إلى OAuth 1.0

لقد أضفت your_key_key و consumer_secret الذي قمت بإنشائه في WP Backend> Users> Applications (تتم إضافته مع المكوّن الإضافي OAuth).

طريقة التوقيع - HSAC-SHA1

ثم سيقوم Postman بتحديث هذا وإنشاء ديناميك الخاص بك ، الطابع الزمني والإصدار.

أنا وضعت بلدي المجال باسم "مثال"

بعد ذلك تأكدت من تمكين الخيارات: - إضافة Params إلى رأس - إضافة معلمات فارغة للتوقيع

هنا ما أحصل عليه للمهرجانات:

realm="Example",oauth_consumer_key="AdPuqyWrAQQc",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1470248765",oauth_nonce="dnOTvG",oauth_version="1.0",oauth_signature="gUahTX2hfV1lqZCfMUvHtLLoauI%3D"

هذا يوفر لي الإخراج التالي:

oauth_token=xbTb4E93K6pP2tcg4qGJIYgl&oauth_token_secret=qWo01WL2ish205yvjiU8qyCkKVPMNUvSbKpFBB1T1oOuOtBc&oauth_callback_confirmed=true

يمكنني استخدام Postman لتصدير استدعاء واجهة برمجة التطبيقات هذا إلى وظيفة cURL وإذا كان الأمر كذلك ، أحصل على ما يلي:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://mydomain.dev/oauth1/request",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_consumer_key\"\r\n\r\nAdPuqyWrAQQc\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_token\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_signature_method\"\r\n\r\nHMAC-SHA1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_timestamp\"\r\n\r\n1470241356\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_nonce\"\r\n\r\n7VKp4N\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_version\"\r\n\r\n1.0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_signature\"\r\n\r\n9qRrIkDxt56S9Ikf061eFOVLAdA%3D\r\n-----011000010111000001101001--",
  CURLOPT_HTTPHEADER => array(
    "authorization: OAuth realm=\"Example\",oauth_consumer_key=\"AdPuqyWrAQQc\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1470248765\",oauth_nonce=\"dnOTvG\",oauth_version=\"1.0\",oauth_signature=\"gUahTX2hfV1lqZCfMUvHtLLoauI%3D\"",
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=---011000010111000001101001",
    "postman-token: dd85258e-a72a-b731-82d1-00109e30962f"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo 'response ' . $response;

  $a = parse_str($response);

  echo 'token ' . $oauth_token;
  echo '<br>';
  echo 'secret '. $oauth_token_secret;


}

هذه هي الخطوة 1 من عملية من 3 خطوات لمصادقة OAuth. أنا بدأت للتو في رحلتي لربطهم جميعًا. لا يوجد الكثير من الوثائق وليس هناك الكثير من الأمثلة.

تبدو الخطوة 2 وكأنها مكالمة إلى / oauth1 / تفويض باستخدام الرمز المميز والسرية. هذا يبدو كما لو أنه يتطلب تسجيل دخول المستخدم ويتم إنشاء رمز مميز جديد (وبقاء) والسرية.

تبدو الخطوة 3 وكأنها مكالمة إلى / oauth1 / access

لم أحصل بنجاح على الخطوة 2 والخطوة 3 للربط معًا بشكل صحيح ، ولكنني اعتقدت أنني يجب أن أتابع للمساعدة في طلب البحث الأصلي حول الخطوة الأولى لعدم إرجاع الرموز الصحيحة

تعد هذه المقالة واحدة من أفضل المقالات التي تشرح كيفية استخدام WP-API و OAuth.

https://code.i-harness.com

لدي واجهة برمجة تطبيقات إعداد WordPress rest و WordPress OAuth إعداد المكونات الإضافية وأحاول المصادقة باستخدام http://sevengoslings.net/~fangel/oauth-explorer/ كل مرة لا يمنحني محتوى الاتصال رمز OAuth المميز أو سر OAuth احتاج.

لقد جربت هذه الخطوات https://wordpress.org/support/topic/json-rest-api-from-mobile-app-with-authentication

1. Enter base url (http(s)://your.domain.com/oauth1
2. Access token = request
3. Authorize = authorize
4. Access_Token = access
5. Enter your consumer key and secret (leave method as HMAC-SHA1)

انقر فوق Get Request Token والحصول على محتوى الاتصال

يجب أن أحصل على هذا في محتوى الاتصال

Call content now = 

oauth_token=xxxxxxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxxxxxxxxxxxx&oauth_call_back_confirmed=true

لكني فقط أحصل على هذا

 page not found 

هنا لم يتمكنوا من الحصول على OAuth1 .0a ثلاثي الأرجل للعمل حتى يستخدموا OAuth الأساسية التي تتطلب مكون إضافي آخر ولا يوصى بالإنتاج.

هل يجب علي استخدام طريقة توقيع مختلفة؟

أنا أبحث عن أمرين curl للحصول على منحة OAuth من الخادم والآخر للتداول في هذه المنحة للحصول على رمز وصول + رمز مميز للتحديث.





oauth