我正在尝试使用 ROAuth (v0.9.2) 对 XING API (api.xing.com) 进行身份验证。
library(package="RCurl")
library(package="ROAuth")
site <- "https://api.xing.com"
requestTokenPath <- "/v1/request_token"
accessTokenPath <- "/v1/access_token"
authorizePath <- "/v1/authorize"
consumerKey <- "***********" # blank key for posting
consumerSecret <- "********" # blank key for posting
requestURL <- paste(site, requestTokenPath, sep="")
accessURL <- paste(site, accessTokenPath, sep="")
authURL <- paste(site, authorizePath, sep="")
credentials <- OAuthFactory$new(consumerKey=consumerKey,
consumerSecret=consumerSecret,
requestURL=requestURL,
accessURL=accessURL,
authURL=authURL,
needsVerifier=TRUE)
credentials$handshake(ssl.verifypeer=FALSE) # skip ssl verification for testing, this is passed through to RCurl
输出:
Error in credentials$handshake(ssl.verifypeer = FALSE) :
Invalid response from site, please check your consumerKey and consumerSecret and try again.
我仔细检查了我的 key 和 URL,所以我很确定这不是错误的原因。
谢谢,
克里斯
最佳答案
我建议使用 Hadley Wickham 的 httr
包,因为我发现它在处理 API 时特别有用。并且不要忘记仔细阅读所有相关文档...
看起来 XING 使用 OAuth v1,因此请查看相关的 httr 文档
我不确定你是否已经知道这一点......但它有点像一个两阶段的过程......
首先,您将您的消费者 key 和 secret 发送给 XING,它将返回给您一个 token 。
然后与所有三个:
1)消费者 key ,
2) 消费者 secret 和
3)刚刚提供的 token
你能访问 XING 设置的所有 API 调用吗……你可能需要 XML 来有效地解释响应。
不确定这是否有效,但大致如下:
require(httr)
xing.app <- oauth_app("xing",key="xxxxxxxxxx", secret="xxxxxxxxxxxxxxx")
xing.urls <- oauth_endpoint(NULL, "authorize", "access_token",base_url = "https://api.xing.com/v1/")
xing.token <- oauth1.0_token(xing.urls, xing.app)
xing.token
xing.token
中的那个 token 用于那个唯一的 key 和 secret 组合,即那个用户......但是一旦你拥有它......你不需要继续请求它......你可以将它存储在你的 .Rprofile 文件中或某物...然后将其作为 GET 或 POST 命令中的一个选项。user.signature <- sign_oauth1.0(xing.app, token = token.string.from.xing.token, token_secret = token.secret.from.xing.token)
# so I think as an example you can have this...
id <- "yyyyyyy"
GET(url= paste0("https://api.xing.com/v1/users/",id), config=user.signature)
希望有所帮助....代码中可能存在一些错误,因为我没有您的消费者 key 或 secret ,因此未经测试。我还没有完全阅读文档,但我认为它不会太远......请随时进行更正......当你实际测试它时......
出于好奇……您使用 API 做什么?
关于r - 如何在 XING 中使用 OAuth 和 R,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14198411/