2012-04-13 10 views
0

「リクエストされたURLがHTTPコード401で応答しました」という理由を理解したいと思います。私はアクセストークンを記述しようとします。サウンドクラウドAPIエラー401直後よりトークンを使用すると

ユーザーからaccess_token(セッション)を取得した直後にそれを実行するとうまくいくと思いますが、トークンを保存して後で同じコードを起動しようとすると、失敗します。

私はトークンを使わずにサウンドクラウドの説明にアクセスできますが、この方法を使用すると、トークンに問題があります:$ soundcloud-> setAccessToken($ token);トラック件のデータを取得する前に、私はもうそれらにアクセスすることはできません...ここで

はコードです:

require_once 'soundcloud/Soundcloud.php'; 
$soundcloud = new Services_Soundcloud(SOUNDCLOUD_CLIENT_ID, SOUNDCLOUD_CLIENT_SECRET, SOUNDCLOUD_REDIRECT_URI); 
$soundcloud->setAccessToken($session_token); 
try 
{ 
    $track = json_decode($soundcloud->get('tracks/'.$media_id), true); 
} 
catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) 
{ 
    exit($e->getMessage()); 
} 
try 
{ 
    $response = json_decode($soundcloud->put(
            'tracks/'.$media_id, 
               'test', 
               array(CURLOPT_HTTPHEADER => array('Content-Type: application/xml'))), true); 
} 
catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) 
{ 
    exit($e->getMessage()); 
} 

私は数日間、それを起動した場合、私はちょうどトークンを取得したが失敗したときに、このコードが動作します後...

ありがとうございました!

答えて

1

この例では、$ session_tokenはどこから来ますか?アクセストークンの生成方法によっては、次の2つのいずれかが発生しています。

  1. 正しいアクセストークンを送信していません。
  2. 送信しているアクセストークンの有効期限が切れています。

2の場合は、ユーザーがあなたのアプリを承認したときに更新トークンを取得する必要があります。 PHP SoundCloud SDKには、このシナリオで使用できるaccessTokenRefresh()メソッドがあります。

+0

こんにちは、 私は文書で、期限切れでないトークンを要求できるようになりました。 ありがとうございました! – Ludo

1

期限切れでないトークンが必要です。

許可する場合、パラメータscopeはデフォルトで"*"になります。

範囲を指定し、このようなトークンを取得:

$soundcloud->getAuthorizeUrl(array('scope'=>'non-expiring')) 

参照:http://developers.soundcloud.com/docs/api/reference#connect

(かなり古い質問が、ちょうどこのに自分自身を走ったトークンの有効期限が切れている場合は、あなたが得ることはありません。 0x30以外のAPIからのフィードバック、暗闇の中であなたを残しています)。

関連する問題