2012-04-18 13 views
6


Google apiに接続しようとしています。
これは私の端末でうまくいきます。私はやっています:
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode"
これはうまくいきましたが、今はこれをcプログラムの中に作りたいと思います。このため
私が持っている:
httpsをlibcurlで取得する

CURL *curl; 
    char *header = "Authorization: Bearer myAccessCode"; 
    struct curl_slist *headers = NULL; 
    headers = curl_slist_append(headers, header); 

    curl = curl_easy_init(); 

    char *response = NULL; 

    curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/tasks/v1/users/@me/lists"); 
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); 
    curl_easy_setopt(curl, CURLOPT_HTTPGET, 1); 

    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); 
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); 

    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); 
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, httpsCallback); 
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); 

    curl_easy_perform(curl); 
    curl_easy_cleanup(curl); 

しかし、ここで私はログインが必要ですメッセージを取得しています。 私は何が間違っているのか分かりませんが、私の失敗を見ている人はいますか?

+0

私は私が作ったことに気づいた: 'curl_slist_append(ヘッダ、ヘッダ);'
代わりに: 'ヘッダー= curl_slist_append(ヘッダ、ヘッダー); '
ヘッダーは常にNULLで、ヘッダーなしでリクエストを行いました。
(誰かが同様の問題を持っている場合、私は上記の私の質問でそれを編集し、そのコードが動作する) – EarlOfEgo

+0

は、そこで問題は、その後、既に解決していますか? –

+2

はい、しかし私の評判のポイントは私自身の質問に答えるのに10時間待たされました:-)だから私は今それをやります。 – EarlOfEgo

答えて

4

私は上記のコメントに書いたように:curl_slist_append(headers, header);
の代わり:headers = curl_slist_append(headers, header);
をので、ヘッダは常にNULLだったと私は、ヘッダなしのGETリクエストをした。私はちょうど私が作ったことに気づき

(コードが動作するように、いくつかの場合、私は、上記の私の質問でそれを編集)

関連する問題