diff --git a/src/services/inoreader/definitions.h b/src/services/inoreader/definitions.h index 8b0e4ee35..60db2975c 100755 --- a/src/services/inoreader/definitions.h +++ b/src/services/inoreader/definitions.h @@ -19,6 +19,10 @@ #ifndef INOREADER_DEFINITIONS_H #define INOREADER_DEFINITIONS_H -#define INOREADER_API_VERSION "0" +#define INOREADER_OAUTH_PORT "8080" +#define INOREADER_OAUTH_TOKEN_URL "https://www.inoreader.com/oauth2/token" +#define INOREADER_OAUTH_AUTH_URL "https://www.inoreader.com/oauth2/auth" +#define INOREADER_OAUTH_CLI_ID "1000000604" +#define INOREADER_OAUTH_CLI_KEY "gsStoZ3aAoQJCgQxoFSuXkWI7Sly87yK" #endif // INOREADER_DEFINITIONS_H diff --git a/src/services/inoreader/inoreaderentrypoint.cpp b/src/services/inoreader/inoreaderentrypoint.cpp index 65c5eb55f..c422523f8 100755 --- a/src/services/inoreader/inoreaderentrypoint.cpp +++ b/src/services/inoreader/inoreaderentrypoint.cpp @@ -49,7 +49,7 @@ QString InoreaderEntryPoint::code() const { } QString InoreaderEntryPoint::description() const { - return QObject::tr("This is integration of Inoreader. This plugin implements API, version %1.").arg(INOREADER_API_VERSION); + return QObject::tr("This is integration of Inoreader."); } QString InoreaderEntryPoint::version() const { diff --git a/src/services/inoreader/network/inoreadernetworkfactory.cpp b/src/services/inoreader/network/inoreadernetworkfactory.cpp index 3c149e683..2d4a9faac 100755 --- a/src/services/inoreader/network/inoreadernetworkfactory.cpp +++ b/src/services/inoreader/network/inoreadernetworkfactory.cpp @@ -18,7 +18,30 @@ #include "services/inoreader/network/inoreadernetworkfactory.h" -InoreaderNetworkFactory::InoreaderNetworkFactory(QObject* parent) : QObject(parent) {} +#include "network-web/silentnetworkaccessmanager.h" +#include "services/inoreader/definitions.h" + +#include +#include + +InoreaderNetworkFactory::InoreaderNetworkFactory(QObject* parent) : QObject(parent) { + initializeOauth(); +} + +void InoreaderNetworkFactory::initializeOauth() { + auto oauth_reply_handler = new QOAuthHttpServerReplyHandler(INOREADER_OAUTH_PORT, this); + + // Full redirect URL is thus "http://localhost.8080/". + oauth_reply_handler->setCallbackPath(QSL("")); + + m_oauth2.setAccessTokenUrl(QUrl(INOREADER_OAUTH_TOKEN_URL)); + m_oauth2.setAuthorizationUrl(QUrl(INOREADER_OAUTH_AUTH_URL)); + m_oauth2.setClientIdentifier(INOREADER_OAUTH_CLI_ID); + m_oauth2.setClientIdentifierSharedKey(INOREADER_OAUTH_CLI_KEY); + m_oauth2.setContentType(QAbstractOAuth::ContentType::Json); + m_oauth2.setNetworkAccessManager(new SilentNetworkAccessManager(this)); + m_oauth2.setReplyHandler(oauth_reply_handler); +} /* QOAuth2AuthorizationCodeFlow* oauth2 = new QOAuth2AuthorizationCodeFlow("1000000604", diff --git a/src/services/inoreader/network/inoreadernetworkfactory.h b/src/services/inoreader/network/inoreadernetworkfactory.h index 676d2e184..06313f104 100755 --- a/src/services/inoreader/network/inoreadernetworkfactory.h +++ b/src/services/inoreader/network/inoreadernetworkfactory.h @@ -21,15 +21,19 @@ #include +#include + class InoreaderNetworkFactory : public QObject { Q_OBJECT public: explicit InoreaderNetworkFactory(QObject* parent = nullptr); - signals: + private: + void initializeOauth(); - public slots: + private: + QOAuth2AuthorizationCodeFlow m_oauth2; }; #endif // INOREADERNETWORKFACTORY_H