实际上我问这个问题是因为我花了几个月(我的意思是几个月)试图弄明白;除了这个tutsplus.com 教程之外,我没有得到任何真正帮助我的答案,这对我解决问题很有帮助; the WooCommerce REST API doc 太令人困惑了,这让我觉得事情变得更糟了,但它仍然值得一读。
第一步:设置插件并获取启动所需的信息
- 首先,在您的 WoordPress 网站上安装并激活“WooCommerce”、“WP REST API”和“WP REST API - OAuth 1.0a 服务器”插件;
- 然后,在您的计算机上安装 postman;
- 然后从仪表板的 WooCommerce 设置页面转到 API 选项卡,确保选中激活 REST API 复选框;
-
仍在 WoordPress 后端,通过单击用户>应用程序页面上的添加新按钮创建一个新用户(这只会在您正确安装并激活上述插件时显示);
用户创建后;复制客户端密钥 (CK) 和 客户端密钥(CS) 并将它们保存在安全的地方;
- 然后,返回用户>应用程序页面并将编辑链接悬停在您刚刚创建的用户名下; 用户 ID 显示在页面下方(在屏幕的左角);写下来以备不时之需。
我们完成了收集必要数据的第一步,以开始对应用进行身份验证并在网站和应用之间建立通信。
第二步:获取最终Token并构建WC授权URL
此步骤包括使用我们上面收集的数据来获取 最终令牌(不要与临时令牌混淆)并构建建立通信的 WooCommerce 授权 URL在应用程序和网站之间。
我应该只在这一步使用邮递员,但由于我无法从 windows 邮递员登录我的网站仪表板,我在邮递员和浏览器之间切换。我想最新版本的邮递员会解决这个问题,因为他们正在杀死 chrome 插件……别介意放手:
- 在邮递员仪表板的 URL 区域中,粘贴以下内容:mysite.com/wp-json。选择 GET 作为方法并按下 SEND 按钮;你会得到这个:
“身份验证”:{“oauth1”:{
“请求”:“mysite.com/oauth1/request”,
“授权”:“mysite.com/oauth1/authorize”,
“访问”:“mysite.com/oauth1/access”,“版本”:“0.1”}
作为您回复的一部分。
2.点击第一个链接(mysite.com/oauth1/request);邮递员打开一个新标签;在 TYPE 下,选择 OAuth 1.0 ;新字段出现在右侧。在Consumer Key和client key (CK)和client secret (CS) >消费者秘密字段;然后,再次单击发送按钮。您将得到的响应是这样的:
oauth_token=your_oauth_token_is_here&oauth_token_secret=your_oauth_token_secret_is_here&oauth_callback_confirmed=true
- 复制您的 oauth_token (TK) 和您的 oauth_token_secret(TKS) 的值;但请记住,这只是临时值,不要与最终的 oauth_token 和最终的令牌密钥混淆;
- 返回 postman 中的第一个选项卡,然后单击响应中的第二个链接 (mysite.com/oauth1/authorize);邮递员打开一个新标签;在 TYPE 下选择 OAuth 1.0 ;新字段出现在右侧。填写您的临时 oauth_token (TK) 和您的临时 oauth_token_secret(TKS)。点击发送。在响应部分单击预览链接以查看响应的外观,它会要求以 WoordPress 用户身份登录,而邮递员则不能;
- 所以滚动到邮递员顶部并点击保存按钮下的代码链接;选择 JAVA OK HTTP 作为语言;你会得到这样的代码:
mysite.com/oauth1/authorize?oauth_consumer_key=your_costumer_key_is_here&oauth_token=your_temporary_token_key_is_here&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1512645061&oauth_nonce=VHeUrwCl4CP&oauth_version=1.0&oauth_signature=3bMUiF8%2Fg57EkwaDOdnQ8m3s8TQ%3D
复制括号中的 URL 并将其粘贴到您已经以 WoordPress 用户身份登录的浏览器中;
- 给应用授权;它会将您重定向到带有您的验证令牌 (VT) 的页面,您必须将其复制并保存在某处。
- 返回 postman 中的第一个选项卡并单击响应中的第三个链接 (mysite.com/oauth1/access) ;邮递员打开一个新标签;选择 OAuth 1.0 作为类型;新字段出现在右侧。在 SEND 按钮之前有一个 Params 按钮;单击它;出现新字段;输入 oauth_verifier 作为密钥,输入您的 verification Token (VT) 作为值;然后按发送;响应如下所示:
oauth_token=your_final_token_is_here&oauth_token_secret=your_final_token_secrete_is_here
这些是您的最终 oauth_token (FTK) 和您的最终 oauth_token_secret( FTKS );
8. 现在我们可以建立我们的最终网址了;在邮递员中打开一个新标签;在 URL 部分,粘贴 (mysite.com/wc-auth/v1/authorize) ;选择 OAuth 1.0 作为类型;字段出现在右侧。将 Access Token value 替换为 y我们的最终 oauth_token (FTK),将 Token Secret 替换为 final oauth_token_secret(FTKS);
9. 单击 Params 按钮并输入以下键/值对:
app_name => your_app_name(从第 1 步开始); user_id => your_user_id(来自
第 1 步)return_url=> your_return_url(我使用了 mysite.com)
callback_url=> your_callbak_url (我用过mysite.com)
点击发送按钮;一旦你的回答是 200 OK;点击代码链接查看对应的JAVA OK HTTP代码;复制 URL 并将其粘贴到您的浏览器中,然后您才能看到应用程序请求批准访问 WooCommerce 数据;
我的意思是:
所以您现在需要做的就是复制从邮递员生成的整个 OKHTTP 代码,并在您的 ANDROID java 应用程序中使用它以获得许可;我使用 webview 在我的应用程序中显示此响应页面。我希望这能帮助很多在这个问题上苦苦挣扎的人。