获得 Zoho API 的授权
Getting authorization for Zoho APIs
我正在尝试遵循 Zoho 的 guide for getting authorized via OAuth. Unfortunately, the guide seems a little outdated as the API Console 与指南中提供的屏幕截图不一样。
这就是我想要完成的事情
我正在开发 windows 客户端应用程序。因此,我很自然地为我的 zoho 客户端选择了 非浏览器应用程序 (在 API 控制台中)。使用此客户端类型没有“授权重定向 URI”。
那么我应该如何获得开始使用 Zoho APIs 的授权?
目前,我已经尝试了各种客户端类型和各种重定向 uris(虚假)。我收到 500 的 http 代码响应。
我基本上是在调用 HttpClient GetAsync(requestUrl),其中 requestUrl 定义如下:
var scopeValue = $"{scope}&client_id={clientId}&client_secret={secret}&response_type=code&access_type=offline";
var requestUrl = $"https://accounts.zoho.com/oauth/v2/auth?scope={scopeValue}";
问题
- 为什么我在调用此 GET 请求以获得授权时收到 500 错误?
- 我是不是 choosing/configuring 错误的 zoho 客户端类型?
- Zoho 账户 ID 和用户 ID 之间有区别吗(这可能是我的问题之一)?
仅供参考,这里是 Zoho API 控制台,有多种客户端类型可供选择:
尝试转到不同的 requestUrl。我相信你应该去这里。您还应该使用 POST 请求。我为我的 zoho 客户端选择了 Non-Browser 应用程序(在 API 控制台中)。而且我能够得到回应。
https://accounts.zoho.com/oauth/v3/device/code?client_id=xxxx&scope=ZohoProjects.tasklists.READ&grant_type=device_request
我在VBA写这个只是为了解决这个问题。
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
Url = "https://accounts.zoho.com/oauth/v3/device/code?" & _
"client_id=xxx&" & _
"scope=ZohoProjects.tasklists.READ&" & _
"grant_type=device_request"
objHTTP.Open "POST", Url, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send ("")
replyTXT = objHTTP.responseText
Debug.Print (replyTXT)
我相信这个 link 有一些有用的信息。
https://www.zoho.com/accounts/protocol/oauth/devices/initiation-request.html
我正在尝试遵循 Zoho 的 guide for getting authorized via OAuth. Unfortunately, the guide seems a little outdated as the API Console 与指南中提供的屏幕截图不一样。
这就是我想要完成的事情
我正在开发 windows 客户端应用程序。因此,我很自然地为我的 zoho 客户端选择了 非浏览器应用程序 (在 API 控制台中)。使用此客户端类型没有“授权重定向 URI”。
那么我应该如何获得开始使用 Zoho APIs 的授权?
目前,我已经尝试了各种客户端类型和各种重定向 uris(虚假)。我收到 500 的 http 代码响应。
我基本上是在调用 HttpClient GetAsync(requestUrl),其中 requestUrl 定义如下:
var scopeValue = $"{scope}&client_id={clientId}&client_secret={secret}&response_type=code&access_type=offline";
var requestUrl = $"https://accounts.zoho.com/oauth/v2/auth?scope={scopeValue}";
问题
- 为什么我在调用此 GET 请求以获得授权时收到 500 错误?
- 我是不是 choosing/configuring 错误的 zoho 客户端类型?
- Zoho 账户 ID 和用户 ID 之间有区别吗(这可能是我的问题之一)?
仅供参考,这里是 Zoho API 控制台,有多种客户端类型可供选择:
尝试转到不同的 requestUrl。我相信你应该去这里。您还应该使用 POST 请求。我为我的 zoho 客户端选择了 Non-Browser 应用程序(在 API 控制台中)。而且我能够得到回应。
https://accounts.zoho.com/oauth/v3/device/code?client_id=xxxx&scope=ZohoProjects.tasklists.READ&grant_type=device_request
我在VBA写这个只是为了解决这个问题。
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
Url = "https://accounts.zoho.com/oauth/v3/device/code?" & _
"client_id=xxx&" & _
"scope=ZohoProjects.tasklists.READ&" & _
"grant_type=device_request"
objHTTP.Open "POST", Url, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send ("")
replyTXT = objHTTP.responseText
Debug.Print (replyTXT)
我相信这个 link 有一些有用的信息。 https://www.zoho.com/accounts/protocol/oauth/devices/initiation-request.html