2010-11-23 8 views
1

ウェブサイトのAPIを使用するのが初めてです。しかし、長いこと私はこれを学びたいと思っていたので、今日はサウンドクラウドから情報にアクセスする簡単な例から始めました。ここでサウンドクラウドAPIへの接続に「oauthアクセスの秘密」を取得する方法

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}" 

websiteは、私のように設定するかを知っている彼らからの簡単な例のコードは次のとおりです。

  • 'YOUR_APPLICATION_CONSUMER_TOKEN'
  • 'YOUR_APPLICATION_CONSUMER_SECRET'

これが与えられたとして、サウンドクラウドにアプリケーションを登録するとき。

私はまた、てSoundcloudサイトに書かれていたhttp://api.soundcloud.com/oauth/access_token に「YOUR_OAUTH_ACCESS_TOKEN」を設定したが、私はから

_YOUR_OAUTH_ACCESS_SECRET_を得るためには考えています。

このアクセス秘密は、私がどこかから得るランダムな文字列ですか、私はそれを自分で生成する必要がありますか?エリート紳士の答えで示唆したように


EDITは、私はまた、認証にて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::Unauthorized: 401 Unauthorized

method token_request in consumer.rb at line 217 method get_request_token in consumer.rb at line 139 at top level in test1.rb at line 25

どのようにこの単純な例では失敗することができますか?

答えて

1

OAuthと同様に、エンドユーザがSoundcloudのに保護されたリソースにアプリケーションからアクセスするようにするには、アプリケーションをSoundcloudに登録する必要があります。

OAuthを使用してSoundcloudからaccess_tokenをリクエストすると、access_tokenoauth_token_secretが返されます。それoauth_token_secretはあなたが私はあなたがOAuthのであるか馴染みの知らない_YOUR_OAUTH_ACCESS_SECRET_

として挙げたものです。ドキュメントはhereです。


編集のOAuth認証方式は、(例えば、アクセストークンを取得oauth_verifierを指定する必要があります)、しばらく前に変更しました。

最新のOAuth仕様を使用してSoundCloud example on Authenticationを参照してください。

+0

感謝。しかし、私はあなたが私の問題が何かを理解していないと思う、おそらくそれはあまりにも単純なためです。 access_token(access_token = OAuth :: AccessToken.new(sc_consumer、 'YOUR_OAUTH_ACCESS_TOKEN'、 'YOUR_OAUTH_ACCESS_SECRET'))をリクエストするには、既に** YOUR_OAUTH_ACCESS_SECRET **を知っていなければなりません。 – dedan

+0

@dedan、あなたの質問の答えははいですが、それは古いOAuth認証方式のようです。私の編集したポストをもっと見るには –

+0

よろしいですか、明日の編集で投稿したこの新しい例を試してみましょう。私は使用したものが2010年9月13日に最後に編集されたので、ちょっと疑問に思いました。明日は結果を投稿します – dedan

2

質問に対する回答は非常に簡単です。私の問題は、 がsoundcloudプロダクションシステム soundcloud.comに私のアプリケーションを登録していたが、sandbox-soundcloud.comに対する私の要求を指示していたことだった。

私はsandbox-soundcloud.comに行き、新しいユーザーアカウントを登録して 新しいクライアントアプリケーションを作成し、すべてが完全に機能しなければなりませんでした。サンドボックス上の

詳しい情報はこちら:迅速な答えを http://github.com/soundcloud/api/wiki/Appendix-B-Sandbox

+0

この情報が最新であるかどうかはわかりませんが、それは私にいくつかの謎を説明し始めました。 –

関連する問題