Ошибка flickcurl — Ошибка метода flickr.oauth.access_token

У меня проблема с аутентификацией в Flickr с использованием протокола OAuth и библиотеки flickcurl.
Я застрял в шаге «Создать токен доступа». У меня есть правильный oauth_client_key, oauth_client_secret, созданный request_token, request_token_secret, authorize_uri и набор Verifier (как описано Вот), но flickcurl_oauth_create_access_token(...) Функция возвращает ошибку и генерирует сообщение:

Ошибка flickcurl — метод flickr.oauth.access_token завершился с ошибкой 0 (пусто) (HTTP 401)

Мое заявление:

#include <flickcurl.h>
#include "ConfigFile.h"#include <string>
#include <iostream>

using namespace std;

int main()
{
flickcurl_init();
flickcurl *fc = flickcurl_new();

ConfigFile cf(".flickcurl.conf");

string oauth_client_key = cf.getValueOfKey("oauth_client_key");
string oauth_client_secret = cf.getValueOfKey("oauth_client_secret");

flickcurl_set_oauth_client_key(fc, oauth_client_key.c_str());
flickcurl_set_oauth_client_secret(fc, oauth_client_secret.c_str());

string oauth_token = cf.getValueOfKey("oauth_token");
string oauth_token_secret = cf.getValueOfKey("oauth_token_secret");
if (oauth_token.empty() || oauth_token_secret.empty())
{
if (flickcurl_oauth_create_request_token(fc, NULL))
return 1;
string request_token = flickcurl_get_oauth_request_token(fc);
string request_token_secret = flickcurl_get_oauth_request_token_secret(fc);
string uri = flickcurl_oauth_get_authorize_uri(fc);

cout << "Application wants to link to your Flickr account. \n""To authorize it go to: "<< uri << endl;
cout << "Type in Verifier displayed on a page: ";
string verifier;
cin >> verifier;

flickcurl_set_oauth_request_token(fc, request_token.c_str());
flickcurl_set_oauth_request_token_secret(fc, request_token_secret.c_str());

if (flickcurl_oauth_create_access_token(fc, verifier.c_str()))
return 1;
oauth_token = flickcurl_get_oauth_token(fc);
oauth_token_secret = flickcurl_get_oauth_token_secret(fc);
}
flickcurl_set_oauth_token(fc, oauth_token.c_str());
flickcurl_set_oauth_token_secret(fc, oauth_token_secret.c_str());

flickcurl_free(fc);
flickcurl_finish();

return 0;
}

* ConfigFile — это простой анализатор конфигурационных файлов. oauth_token и oauth_token_secret должны быть созданы (через вызов flickcurl_oauth_create_access_token ()), если они не найдены в файле конфигурации.
Что пропущено или что я делаю не так?

0

Решение

Я не уверен, какую версию flickcurl вы используете, но в последней версии 1.24 было исправлено множество ошибок, а в следующей версии 1.25 — еще несколько. OAuth сложно получить право.

Более конкретно, этот коммит в 1.24 может исправить это: https://github.com/dajobe/flickcurl/commit/726c6737d7494f688a22f7a581bcadb61cf018d0

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]