我是使用网站API的新手。但是很长一段时间我都想学习这个,今天开始的例子是如何从soundcloud访问信息。以下是website
中简单示例的代码require 'rubygems'
gem 'soundcloud-ruby-api-wrapper'
require 'soundcloud'
gem 'oauth'
require 'oauth'
# Create a Soundcloud OAuth consumer token object
sc_consumer = Soundcloud.consumer('YOUR_APPLICATION_CONSUMER_TOKEN','YOUR_APPLICATION_CONSUMER_SECRET')
# Create an OAuth access token object
access_token = OAuth::AccessToken.new(sc_consumer, 'YOUR_OAUTH_ACCESS_TOKEN', 'YOUR_OAUTH_ACCESS_SECRET')
# Create an authenticated Soundcloud client, based on the access token
sc_client = Soundcloud.register({:access_token => access_token})
# Get the logged in user
my_user = sc_client.User.find_me
# Display his full name
p "Hello, my name is #{my_user.full_name}"
我知道要设置为:
这是在soundcloud上注册应用程序时给出的。
我将'YOUR_OAUTH_ACCESS_TOKEN'设置为http://api.soundcloud.com/oauth/access_token 这也写在soundcloud网站上,但我不知道从哪里得到
来自_YOUR_OAUTH_ACCESS_SECRET _ 。
这个访问秘密也是我从某个地方获得的随机字符串,我是否必须自己生成它。
编辑正如Elite Gentlemen的回答中所建议的,我还尝试了Soundcloud身份验证示例。我在这里发布了导致错误的代码:
require 'rubygems'
gem 'soundcloud-ruby-api-wrapper'
require 'soundcloud'
# oAuth setup code:
# Enter your consumer key and consumer secret values here:
@consumer_application = {:key => 'QrhxUWqgIswl8a9ESYw', :secret => 'tqsUGUD3PscK17G2KCQ4lRzilA2K5L5q2BFjArJzmjc'}
# Enter the path to your audio file here.
path_to_audio_file = "your/absolute/path/to/audio_file.ext"
# Set up an oAuth consumer.
@consumer = OAuth::Consumer.new @consumer_application[:key], @consumer_application[:secret],
{
:site => 'http://api.sandbox-soundcloud.com',
:request_token_path => '/oauth/request_token',
:access_token_path => '/oauth/access_token',
:authorize_path => '/oauth/authorize'
}
# Obtain an oAuth request token
puts "Get request token"
request_token = @consumer.get_request_token
我收到的错误信息是:
OAuth ::未经授权:401未经授权
consumer.rb中的方法token_request 第217行方法get_request_token in consumer.rb在139行顶部 第25行的test1.rb中的级别
这个简单的例子如何失败?
答案 0 :(得分:2)
问题的答案很简单。我的问题是我有 在soundcloud生产系统上注册了我的应用程序 soundcloud.com,但针对sandbox-soundcloud.com我的请求。
我不得不去sandbox-soundcloud.com,注册一个新的用户帐户并制作一个 新客户端应用程序,一切都运行良好。
有关沙盒的更多信息,请点击此处: http://github.com/soundcloud/api/wiki/Appendix-B-Sandbox
答案 1 :(得分:1)
与OAuth一样,如果您希望最终用户通过您的应用程序访问Soundcloud的受保护的资源,则必须向Soundcloud注册您的应用程序。
当您使用OAuth从Soundcloud请求access_token
时,它会返回您access_token
和oauth_token_secret
。 oauth_token_secret
是您提到的 _YOUR_OAUTH_ACCESS_SECRET _
我不知道你对OAuth有多熟悉。可以找到文档here。
修改 OAuth授权方案暂时改变了(例如,获取访问令牌需要您指定oauth_verifier
)。
使用最新的OAuth规范查看SoundCloud example on Authentication。