2013-01-23 57 views
2

我正在嘗試檢索Github上私人存儲庫的README.rm文件的原始內容。通過access_token在Github的私人回購中讀取文件的原始內容

我非常接近,目前唯一的問題是我得到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); 

這使得類似 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 

訪問令牌通過使用provided 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進行此項工作。

任何想法?

回答

2

這需要使用GitHub提供的Repo contents API來處理。該文件的內容將在base64中,以及API的響應。

相關問題