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`
如果我尝试使用 key
和 secret
的相反(反转)值,或者将 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)。
这意味着授权序列应类似于此示例:
您的应用 HTTP GETS:
https://stackexchange.com/oauth/dialog?client_id=4709&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success
其中 client_id
和 scope
根据您的情况设置。
您的应用随后被重定向到:
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 参数的值
我正在尝试连接到 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`
如果我尝试使用 key
和 secret
的相反(反转)值,或者将 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)。
这意味着授权序列应类似于此示例:
您的应用 HTTP GETS:
https://stackexchange.com/oauth/dialog?client_id=4709&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success
其中
client_id
和scope
根据您的情况设置。您的应用随后被重定向到:
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 参数的值