获得 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}";

问题

仅供参考,这里是 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