gpt4 book ai didi

rest - 使用 Ruby OAuth 连接到 Yahoo Contacts API

转载 作者:行者123 更新时间:2023-12-01 15:58:49 25 4
gpt4 key购买 nike

我一直在尝试使用最新的 Yahoo Contacts API
Ruby OAuth 版本,但我不确定我是否会挂断
授权过程的最后阶段,或 API 中的某些内容。
我希望你能帮我弄清楚。

使用当前版本的 OAuth,我显然能够收到
工作访问 key 。我有一个 Controller 请求
request_token 像这样:

@consumer = OAuth::Consumer.new(api_key, shared_secret, 
{
:site => 'https://api.login.yahoo.com',
:request_token_path => '/oauth/v2/get_request_token',
:access_token_path => '/oauth/v2/get_token',
:authorize_path => '/oauth/v2/request_auth',
:signature_method => 'HMAC-SHA1',
:oauth_version => '1.0'
})

@request_token = @consumer.get_request_token(
{:oauth_callback => 'http://contactmonkey.com/cards/yahoo_auth?redir...@card.short_link}
)

我从中得到了一个明显很好的请求 token ,然后继续
新 Controller 方法中的授权:
@access_token = 
@request_token.get_access_token(:oauth_verifier=>params[:oauth_verifier])

我也从中获得了一个显然很好的访问 token 。这只是
当我开始使用 API 时,事情变得梨形。
# make initial contact so we get a contact ID 
yahoo_guid = @access_token.params[:xoauth_yahoo_guid]
@response = @access_token.request(:post, 'http://social.yahooapis.com/v1/user/' + yahoo_guid + '/contacts')

当我检查响应正文时,我得到了这个:
<?xml version=\"1.0\" encoding=\"utf-8\"?><error xmlns=\"http://social.yahooapis.com/v1/schema.rng\" xmlns:yahoo=\"http://www.yahooapis.com/v1/base.rng\" yahoo:uri=\"http://www.yahooapis.com/v1/errors/415\" yahoo:lang=\"en-US\"><description>Requested representation not available for the resource</description><detail>Invalid media type</detail></error>

我在很多地方看到两者之间存在一些不兼容
Yahoo OAuth 实现和 Ruby OAuth gem。但我不确定是否
该信息已过时(我使用的是当前的 0.4.4)。

谢谢你的尽心帮助!
亚伦。

更新:解决方案是正确格式化标题:
@response =  @access_token.request(:post, 'http://social.yahooapis.com/v1/user/' + yahoo_guid + '/contacts', entry, { 'Content-Type' => 'application/xml' } )

请注意“内容类型” header 。我试过“text/xml”,但这不起作用。这样做。感谢 Dan K. 的帮助!

最佳答案

您收到了 HTTP 415,这意味着服务器无法以您请求的格式响应您的请求。 Yahoo API 似乎支持两种指定所需格式的方法。来自 the docs , 他们是:

1.) 使用您请求的内容类型(XML 或 JSON)设置“接受”HTTP header 。

2.) 将 ?format=xml 或 ?format=json 附加到您的查询字符串中。

关于rest - 使用 Ruby OAuth 连接到 Yahoo Contacts API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4687782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com