2

GithubのプライベートリポジトリのREADME.rmファイルの生のコンテンツを取得しようとしています。

私は非常に近くにいますが、現在の唯一の問題は、401の不正な結果が返されることです。

現在、私は以下を使用してファイルを取得しようとしています:

        $query = $this->config['raw_url']  . '/README.md?login=chriscct7&token='.$this->config['access_token'] ;
        //$query = add_query_arg( array( 'access_token' => $this->config['access_token'] ), $query );
        $query = $query.'&token_type=bearer';
        $raw_response = wp_remote_get( $query, array( 'sslverify' => $this->config['sslverify'] ) );
        var_dump($query, $raw_response);

これにより、URLは次のようになります https://raw.github.com/chriscct7/Testplugin/master/README.md?login=chriscct7&token=e590999c1680dba1bcd5488658fa570eb6cbf53e&token_type=bearer

ポストリターン付き:

array (size=5)
  'headers' => 
    array (size=16)
      'date' => string 'Wed, 23 Jan 2013 13:58:50 GMT' (length=29)
      'server' => string 'GitHub.com' (length=10)
      'content-type' => string 'text/html; charset=utf-8' (length=24)
      'status' => string '401 Unauthorized' (length=16)
      'x-ratelimit-remaining' => string '100' (length=3)
      'x-runtime' => string '12' (length=2)
      'x-ratelimit-limit' => string '100' (length=3)
      'content-length' => string '1' (length=1)
      'accept-ranges' => string 'bytes' (length=5)
      'age' => string '0' (length=1)
      'via' => string '1.1 varnish' (length=11)
      'x-served-by' => string 'cache-c32-CHI' (length=13)
      'x-cache' => string 'MISS' (length=4)
      'x-cache-hits' => string '0' (length=1)
      'cache-control' => string 'no-cache' (length=8)
      'connection' => string 'close' (length=5)
  'body' => string ' ' (length=1)
  'response' => 
    array (size=2)
      'code' => string '401' (length=3)
      'message' => string 'Unauthorized' (length=12)
  'cookies' => 
    array (size=0)
      empty
  'filename' => null 

アクセストークンは、提供されているOAuthの例を使用して作成されました。確認しましたが、Githubのアプリはプライベートリポジトリにアクセスできます。

これで、個人のログイントークンを使用する場合、メソッドが機能することがわかりました。

$query = 'https://raw.github.com/chriscct7/Testplugin/master/README.md?login=chriscct7&token=e4d293652a9081d79e582984a3f32dc7';
$raw_response = wp_remote_get( $query, array( 'sslverify' => $this->config['sslverify'] ) );

これは機能し、ファイルの内容を正常に返します。セキュリティ上の理由から、上記のコードでは実際のトークンを使用しなかったことに注意してください。

ただし、アプリのaccess_tokenを使用してこれを機能させる必要があります。

何か案は?

4

1 に答える 1