Как использовать OAuth в XING с R

Я пытаюсь пройти аутентификацию в API-интерфейсе XING (api.xing.com), используя ROAuth (v0.9.2).

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.

Я дважды проверил свои ключи и URL-адреса, так что я почти уверен, что это не является причиной ошибки.

  1. Кто-нибудь может сказать мне, что я делаю не так?
  2. Есть ли способ извлечь запросы и ответы сервера для анализа ошибок?

Спасибо Крис

1 ответ

Я бы порекомендовал использовать httr Пакет Хэдли Уикхэма, поскольку я нашел, что это особенно полезно при работе с API. И не забудьте ВНИМАТЕЛЬНО прочитать всю соответствующую документацию...

похоже, что XING использует OAuth v1, поэтому посмотрите соответствующую документацию httr для этого

Я не уверен, что вы уже знаете это... но это своего рода двухэтапный процесс...

сначала вы отправляете свой ключ и секретный ключ в XING, который вернет вам токен.

затем со всеми тремя из:

1) ключ потребителя, 2) секрет потребителя и 3) только что предоставленный токен

можете ли вы получить доступ ко всем вызовам API, которые были установлены XING... вам, вероятно, понадобится 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 для этого уникального ключа и секретной комбинации, то есть для этого пользователя... но как только он у вас есть... вам не нужно постоянно запрашивать его... вы можете сохранить его в своем файле.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)

надеюсь, это поможет.... в коде может быть несколько ошибок, так как это не проверено, поскольку у меня нет вашего ключа или секрета пользователя. Я не полностью прочитал документацию, но я не думаю, что это слишком далеко... пожалуйста, не стесняйтесь возвращаться с исправлениями... когда вы на самом деле проверяете это...

из любопытства... для чего вы используете API?

Другие вопросы по тегам