如何授权 android 应用程序使用邮递员与 woocommerce 网站进行通信

How to Authorize android app to communicate with woocommerce site using postman

我正在尝试构建一个 Android 应用程序,将本地用户连接到 WordPress/WooCommerce 站点并从中检索数据以在应用程序中使用它们。

请问我如何使应用程序自动化以使用邮递员从我的网站检索 woocomerce 数据?

如有任何帮助,我们将不胜感激。

实际上我问这个问题是因为我花了几个月(我的意思是几个月)试图弄明白;而且我没有得到任何真正帮助我的答案,除此之外 tutsplus.com tutorial which was instrumental in order for me to solve the problem; the WooCommerce REST API doc 太令人困惑了,它让事情对我来说更糟,但它仍然值得一读。

第一步:设置插件并获取启动所需的信息

  1. 首先,在您的 WordPress 网站上安装并激活“WooCommerce”、"WP REST API" 和 "WP REST API - OAuth 1.0a Server" 插件;
  2. 然后,在您的计算机上安装 postman;
  3. 然后从仪表板的 WooCommerce 设置页面转到 API 选项卡,确保激活 REST API 复选框已勾选;
  4. 仍然在 WordPress 后端,通过单击用户 > 应用程序页面上的添加新按钮创建一个新用户(只有当您正确安装并激活了上述插件时才会显示);

  5. 创建用户后;复制 客户端密钥 (CK) 客户端密钥 (CS) 并将它们保存在安全的地方;

  6. 然后,返回用户>应用程序页面,将编辑link悬停在您刚刚创建的用户名下; 用户 ID 出现在页面下方(在屏幕的左上角);写下来放在手边。

我们完成了收集必要数据的第一步,以开始对应用程序进行身份验证并在网站和应用程序之间建立通信。

第二步:获取最终Token并构建WC授权URL

此步骤包括使用我们上面收集的数据来获取 最终令牌 (不要与临时令牌混淆)并构建 WooCommerce 授权 URL 建立应用程序和网站之间的通信。

这一步我应该只使用邮递员,但由于我无法从邮递员登录我的网站仪表板 windows,我在邮递员和我的浏览器之间切换。我想最新版本的邮递员会解决这个问题,因为他们正在杀死 chrome 附加组件……没关系放手:

  1. 在 postman 仪表板的 URL 区域,粘贴以下内容:mysite.com/wp-json。选择 GET 作为方法并按下 SEND 按钮;你会得到这个:

"authentication": {"oauth1": { "request": "mysite.com/oauth1/request",
"authorize": "mysite.com/oauth1/authorize", "access":"mysite.com/oauth1/access","version": "0.1"}

作为您回复的一部分。 2.点击第一个link(mysite.com/oauth1/request);邮递员打开一个新标签;在 TYPE 下,选择 OAuth 1.0 ;新字段出现在右侧。在Consumer中分别填写上一步得到的client key(CK)client secret(CS) KeyConsumer Secret 字段;然后,再次单击“发送”按钮。您将得到的响应是这样的:

oauth_token=your_oauth_token_is_here&oauth_token_secret=your_oauth_token_secret_is_here&oauth_callback_confirmed=true

  1. 复制您的 oauth_token (TK) 和您的 oauth_token_secret( TKS ) 的值;但请记住,这只是临时值,不要与最终的 oauth_token 和最终的令牌秘密混淆;
  2. 返回邮递员中的第一个选项卡,然后单击响应中的第二个 link (mysite.com/oauth1/authorize) ;邮递员打开一个新标签;在 TYPE 下选择 OAuth 1.0 ;新字段出现在右侧。填写你的临时oauth_token(TK)和你的临时oauth_token_secret(TKS)。点击发送。在响应部分单击预览 link 以查看响应的外观,它会要求以 WordPress 用户身份登录,而邮递员无法做到这一点;
  3. 所以滚动到邮递员的顶部并点击保存按钮下的代码 link; Select 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 并将其粘贴到您已经以 WordPress 用户身份登录的浏览器中;

  1. 给应用授权;它会将您重定向到一个包含您的 验证令牌 (VT) 的页面,您必须将其复制并保存在某个地方。
  2. 返回邮递员中的第一个选项卡并单击响应中的第三个 link (mysite.com/oauth1/access) ;邮递员打开一个新标签;选择 OAuth 1.0 作为类型;新字段出现在右侧。在 SEND 按钮之前有一个 Params 按钮;单击它;出现新字段;输入 oauth_verifier 作为密钥,输入您的 验证令牌 (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;在邮递员中打开一个新标签;在 URL 部分,粘贴 (mysite.com/wc-auth/v1/authorize ) ; select OAuth 1.0 作为一种类型;字段出现在右侧。将访问令牌值替换为您我们最终的oauth_token (FTK)令牌秘密最终 oauth_token_secret( FTKS); 9. 单击“参数”按钮并输入以下成对的 key/value:

app_name => your_app_name (from step 1); user_id => your_user_id (from step 1) return_url=> your_return_url (I used mysite.com) callback_url=> your_callbak_url (I used mysite.com)

点击发送按钮;一旦您的回答是 200 OK;点击代码link查看对应的JAVAOK HTTP代码;复制 URL 并将其粘贴到您的浏览器中,然后您才能看到该应用程序请求批准访问 WooCommerce 数据; 我的意思是:

所以您现在需要做的就是复制从邮递员生成的整个 OKHTTP 代码,并在您的 ANDROID java 应用程序中使用它来获得权限;我使用 webview 在我的应用程序中显示此响应页面。我希望这能帮助很多为这个问题而苦苦挣扎的人。