2016-11-03 10 views
0

私はget an unauthenticated token from Vimeo's current API v3に自分自身のウェブサイトで自分のビデオの簡単なリストを取得しようとしています。私は適切なhttp要求を生成するためにWordPress HTTP API関数 'wp_remote_post'を使用しています。Vimeo API - WP HTTP APIで認証されていないトークンを生成する

Vimeoによると、これは正しい方法であり、POSTリクエストで完了します。ここで、引数は次のとおりです。

HTTP Method: POST 
HTTP URL: api.vimeo.com/oauth/authorize/client 
HTTP Headers: Authorization: basic, base64_encode("$client_id: $client_secret") 
Request Body: grant_type=client_credentials&scope=public%20private 

enter image description here

[body] => {"error":"You must provide a valid authenticated access token."} 
[raw] => HTTP/1.1 401 Authorization Required 

はなぜVimeoのは、明示的に認証されていないコールに有効な認証されたアクセストークンを求めてき?私は実際のクライアントIDと私のVimeoのアプリケーションからのクライアントの秘密を提供しました。 へのVimeoの指示は、 のアクセストークンを受け取ります。私は私の地元の環境から要求を送信しています。

私は同様の質問How to generate Vimeo unauthenticated access token?を確認し、そこに概説されているすべてを守っています。サイコロはありません。私はこれを何時間もやろうとしています。

+0

Bwahaha - driveby downvote?私はそうは思わない。以前のq&aは私の質問に全く答えませんでした。私は6時間この質問を研究してきました! – nimmolo

答えて

0

Vimeo APIは、クエリ文字列の一部として、の部分をHTTP POSTオブジェクト( 'body'、 'data'など)の一部として受け付けていないようです。

パラメータをポストオブジェクトのパラメータとして渡すのではなく、URLに直接パラメータをコーディングしたときにのみ、ポストが機能しました。

作品:

$url = 'https://api.vimeo.com/oauth/authorize/client?grant_type=client_credentials&scope=public%20private'; 
$auth = base64_encode($developer_key . ':' . $secret_key); 
$headers = array(
       'Authorization' => 'Basic ' . $auth, 
       'Content-Type' => 'application/json' 
      ); 
$args = array(
       'headers'  => $headers 
      ); 
$response = wp_remote_post($url, $args); 

は動作しません。

$url = 'https://api.vimeo.com/oauth/authorize/client'; 
$auth = base64_encode($developer_key . ':' . $secret_key); 
$data = array(
'grant_type' => 'client_credentials', 
'scope' => 'public private' 
); 
$headers = array(
    'Authorization' => 'Basic ' . $auth, 
    'Content-Type' => 'application/json' 
); 
$args = array(
    'headers'  => $headers, 
    'data'  => $data 
); 

うーん。 As of WordPress 4.6では、WP_HTTPクラスはRyan McCueによってRequestsに構築されました。

私の質問は、実際にはどのようにwp_remote_post()がリクエストを構築するかに関する質問です。関数にパラメータを渡してURLに文字列化する方法はないようです。

関連する問題