2015-12-18 26 views
36

मैं WordPress rest API और WordPress OAuth server setup plugins सेटअप और http://sevengoslings.net/~fangel/oauth-explorer/ हर बार कॉल सामग्री मुझे OAuth टोकन या 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 

यहां वे काम करने के लिए 3-पैर वाले OAuth1 .0a प्राप्त करने में सक्षम नहीं थे इसलिए उन्होंने मूल ओएथ का उपयोग किया जिसके लिए एक और प्लगइन की आवश्यकता है और उत्पादन के लिए अनुशंसित नहीं है।

क्या मुझे एक अलग हस्ताक्षर विधि का उपयोग करना चाहिए?

मैं सर्वर से ओएथ अनुदान प्राप्त करने के लिए दो कर्ल कमांड की तलाश में हूं और दूसरा एक टोकन एक्सेस रीक्रेश टोकन के लिए इस अनुदान का व्यापार करने के लिए देख रहा हूं।

+1

क्या आप पहले से ही कुछ कोड नमूने प्रदान कर सकते हैं? क्या आपका ओथ सेटअप POST अनुरोध स्वीकार करता है? क्या आपका सेटअप दूसरों के लिए प्रयास करने के लिए सुलभ है? – dafyk

उत्तर

4

मुझे यह काम करने के लिए मिला है और मैं यह बताऊंगा कि मैंने यह कैसे किया है।

मैं एपीआई कॉल का परीक्षण और सही करने के लिए 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 का उपयोग करने के तरीके को समझाते हुए बेहतर लोगों में से एक है।

संबंधित मुद्दे