मुझे यह काम करने के लिए मिला है और मैं यह बताऊंगा कि मैंने यह कैसे किया है।
मैं एपीआई कॉल का परीक्षण और सही करने के लिए Postman application का उपयोग कर रहा हूं। मैं अत्यधिक इसका उपयोग करने की सलाह देता हूं। एक बार जब आप कॉल कर रहे हों तो आप PHP कर्ल (या जो कुछ भी आपको चाहिए) में निर्यात कर सकते हैं।
{{url}}/oauth1/request
मैं अपने एपीआई सेट:
If you use Postman you can view my API calls using this shared link.
सबसे पहले कॉल आप परेशानी हो रही है साथ मैं निम्नलिखित सेटिंग्स
सबसे पहले है के लिए, मुझे यकीन है कि मेरी endpoint यूआरएल था बनाया पुश और मेरे ऑथ टाइप को ओएथ 1.0
पर कॉल किया गया मैंने अपना उपभोक्ता_की और उपभोक्ता_सीसी जोड़ा रेट करें कि मैंने WP बैकएंड> उपयोगकर्ता> अनुप्रयोगों में बनाया है (यह OAuth प्लगइन के साथ जोड़ा गया है)।
हस्ताक्षर विधि - HSAC-SHA1
तो डाकिया इस अद्यतन और गतिशील रूप से आपकी Nonce, समय-चिह्न और संस्करण का निर्माण करेगा।
मैं 'उदाहरण'
मैं तो सुनिश्चित करें कि मैं विकल्प सक्षम किया जाता के रूप में मेरे क्षेत्र सेट करें: - पैरामीटर शीर्षक में जोड़े - हस्ताक्षर
यहाँ करने के लिए खाली पैरामीटर जोड़े मैं के लिए क्या मिलता है मेरी पैरामीटर:
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
मैं एक cURL कार्य करने के लिए इस API कॉल निर्यात और निम्न यदि ऐसा है तो मैं पाने के लिए डाकिया का उपयोग कर सकते हैं:
$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;
}
यह OAuth प्रमाणीकरण के लिए एक 3 कदम प्रक्रिया के चरण 1 है। मैं बस उन सभी को जोड़ने के लिए अपनी यात्रा पर शुरू कर रहा हूं। वहां बहुत अधिक दस्तावेज नहीं हैं और कई उदाहरण नहीं हैं।
चरण 2 कॉल करने की तरह दिखता है/oauth1/प्रदान किए गए टोकन और गुप्त के साथ अधिकृत। ऐसा लगता है कि इसके बाद एक उपयोगकर्ता लॉगिन और एक नया (और परमिट) टोकन और गुप्त बनाया गया है।
चरण 3 एक फोन की तरह लग रहा करने के लिए/OAuth1/पहुँच
मैं सफलतापूर्वक चरण 2 और चरण 3 एक साथ सही ढंग से लिंक करने के लिए मिल गया है नहीं है, लेकिन मैंने सोचा कि मैं के बारे में मूल प्रश्न के साथ मदद करने के लिए पोस्ट करना चाहिए पहला कदम सही टोकन
This article WP-API और OAuth का उपयोग करने के तरीके को समझाते हुए बेहतर लोगों में से एक है।
क्या आप पहले से ही कुछ कोड नमूने प्रदान कर सकते हैं? क्या आपका ओथ सेटअप POST अनुरोध स्वीकार करता है? क्या आपका सेटअप दूसरों के लिए प्रयास करने के लिए सुलभ है? – dafyk