StackExchange API: 无法解析 client_id

StackExchange API: Could not parse client_id

我正在尝试连接到 R 中的 StackExchange API。

当我尝试时:

library(httr)
end <- oauth_endpoint(authorize   = "https://whosebug.com/oauth",
                           access = "https://whosebug.com/oauth")

myapp <- oauth_app("myapp",
                   key    = "KEY",           # tried swapping these
                   secret = "CLIENT SECRET",
                   redirect_uri = "https://whosebug.com/oauth/login_success")

token <- oauth2.0_token(end,
                        myapp)

浏览器打开但出现以下消息(在浏览器中):

Couldn't parse `client_id`

如果我尝试使用 keysecret 的相反(反转)值,或者将 key 设置为任一值和 secret=NULL 的事件(只是为了在没有特权访问的情况下进行测试)。

StackExchange API docs 说他们给你的 key 值并不是真正的秘密,但 client_secret 值是。在 oauth_app 帮助中它说 secret "is not equivalent to a password, and is not really a secret"。有意思。

现在我只是想建立一个初始测试连接。

更新: 我很好奇这是否真的是无法解析特殊字符的问题。我尝试转义密钥中的 2 个括号 ((() 和 client_secret。那并没有改变任何事情。然后我尝试将两者都设置为空字符串(即 key = "" 等),但不知何故导致了相同的结果。感觉有点线索,但我还是不知道哪里出了问题。

您正在使用 implicit ("Client side") OAuth(SE API Doc)

这意味着授权序列应类似于此示例:

  1. 您的应用 HTTP GETS:

    https://stackexchange.com/oauth/dialog?client_id=4709&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success
    

    其中 client_idscope 根据您的情况设置。

  2. 您的应用随后被重定向到:

    https://stackexchange.com/oauth/login_success#access_token=wdR8Lm7m4ibD48lfrCcFxQ))&expires=86399
    

    例如。

    其中 access_token 是您需要身份验证的后续调用所需要的。

我不是 r 编码员,但我猜语法应该是这样的:

myapp <- oauth_app("myapp",
    client_id   = "{Your App's ID}",
    scope       = "private_info",  #  Or whatever is desired. See the doc page linked above
    redirect_uri = "https://whosebug.com/oauth/login_success")
  • client_secret 仅用于服务器端(显式)OAuth。
  • 在所有 后续 调用中传递 key,无论是否需要 OAuth,用于配额目的。

我遇到了同样的错误,我的问题是我使用客户端密码作为 client_id 参数的值