2012-04-18 14 views
6


Próbuję połączyć się z aplikacją Google api.
To działa dobrze w moim terminalu, tam robię:
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode".
To działa dobrze, ale teraz chcę zrobić to w programie c.
Do tego mam:
Tworzenie protokołu https za pomocą 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); 

Ale tutaj ja tylko dostaję komunikat, że wymagane jest logowanie. Nie mam pojęcia, co robię źle, czy jest ktoś, kto widzi moją porażkę?

+0

Właśnie uświadomiłem sobie, że zrobiłem: 'curl_slist_append (nagłówki, nagłówek);'
zamiast: 'nagłówki = curl_slist_append (nagłówki, nagłówek); '
Tak więc nagłówki zawsze miały wartość NULL, a ja otrzymałem żądanie pobierania bez nagłówka.
(Edytowałem to w moim pytaniu powyżej, więc kod działa, jeśli ktoś ma podobny problem) – EarlOfEgo

+0

Pytanie jest więc już rozwiązane? –

+2

tak, ale moje punkty reputacji zmusiły mnie do czekania 10 godzin na odpowiedź na moje własne pytanie :-) Więc zrobię to teraz. – EarlOfEgo

Odpowiedz

4

Jak pisałem w komentarzu powyżej:
Właśnie uświadomiłem sobie, że zrobiłem: curl_slist_append(headers, header);
zamiast: headers = curl_slist_append(headers, header);
Więc nagłówki zawsze NULL i zrobiłem zamówienie Pobierz bez nagłówka.
(I edycja w moim pytaniu powyżej, więc kod działa, jeśli jakiś)

Powiązane problemy