From 84ba888c3ac2f9959e2f8cad9272a79dea620cae Mon Sep 17 00:00:00 2001 From: keita Date: Sun, 24 Apr 2022 11:06:37 +0900 Subject: [PATCH] =?UTF-8?q?access=5Ftoken=E3=81=AE=E5=86=8D=E7=99=BA?= =?UTF-8?q?=E8=A1=8C=E3=81=8C=E5=87=BA=E6=9D=A5=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cocoatweet/api/api.cc | 1 - src/cocoatweet/api/oauth1/accessToken.cc | 2 +- src/cocoatweet/api/oauth1/invalidateToken.cc | 27 ++++++++++++++++++++ src/cocoatweet/api/oauth1/invalidateToken.h | 13 ++++++++++ src/cocoatweet/api/oauth1/oauth.cc | 8 ++++++ src/cocoatweet/api/oauth1/oauth.h | 2 ++ src/cocoatweet/api/oauth1/requestToken.cc | 2 +- 7 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/cocoatweet/api/api.cc b/src/cocoatweet/api/api.cc index 8669e10..f4b6abb 100644 --- a/src/cocoatweet/api/api.cc +++ b/src/cocoatweet/api/api.cc @@ -3,7 +3,6 @@ #include #include -#include namespace CocoaTweet::API { API::API(CocoaTweet::Authentication::Key _key) { diff --git a/src/cocoatweet/api/oauth1/accessToken.cc b/src/cocoatweet/api/oauth1/accessToken.cc index ad8e87c..1bd3688 100644 --- a/src/cocoatweet/api/oauth1/accessToken.cc +++ b/src/cocoatweet/api/oauth1/accessToken.cc @@ -19,7 +19,7 @@ void AccessToken::oauthToken(const CocoaTweet::API::Model::OAuthToken _token) { const CocoaTweet::API::Model::OAuthToken AccessToken::process( std::weak_ptr _oauth) { - auto key = oauth_.lock()->key(); + auto key = _oauth.lock()->key(); key.authType(CocoaTweet::Authentication::Key::AUTH_TYPE::OAUTH10A); key.accessToken(oauthToken_.oauthToken()); key.accessTokenSecret(oauthToken_.oauthTokenSecret()); diff --git a/src/cocoatweet/api/oauth1/invalidateToken.cc b/src/cocoatweet/api/oauth1/invalidateToken.cc index e69de29..5cc2d5b 100644 --- a/src/cocoatweet/api/oauth1/invalidateToken.cc +++ b/src/cocoatweet/api/oauth1/invalidateToken.cc @@ -0,0 +1,27 @@ +#include +#include +#include "nlohmann/json.hpp" + +#include +#include + +namespace CocoaTweet::API::OAuth1 { +InvalidateToken::InvalidateToken() { + contentType_ = "application/x-www-form-urlencoded"; + url_ = "https://api.twitter.com/1.1/oauth/invalidate_token"; +} + +const CocoaTweet::API::Model::OAuthToken InvalidateToken::process( + std::weak_ptr _oauth) { + auto key = _oauth.lock()->key(); + key.authType(CocoaTweet::Authentication::Key::AUTH_TYPE::OAUTH10A); + auto oauth = std::make_shared(key); + CocoaTweet::API::Model::OAuthToken oauthToken; + HttpPost::process(oauth, [&oauthToken](const std::string& _rcv) { + std::cout << _rcv << std::endl; + auto j = nlohmann::json::parse(_rcv); + oauthToken.oauthToken(j["access_token"]); + }); + return oauthToken; +} +} // namespace CocoaTweet::API::OAuth1 \ No newline at end of file diff --git a/src/cocoatweet/api/oauth1/invalidateToken.h b/src/cocoatweet/api/oauth1/invalidateToken.h index 3c9ad7d..1c72bd9 100644 --- a/src/cocoatweet/api/oauth1/invalidateToken.h +++ b/src/cocoatweet/api/oauth1/invalidateToken.h @@ -1,4 +1,17 @@ #ifndef COCOATWEET_API_OAUTH1_INVALIDATETOKEN_H_ #define COCOATWEET_API_OAUTH1_INVALIDATETOKEN_H_ +#include +#include +namespace CocoaTweet::API::OAuth1 { +class InvalidateToken : public CocoaTweet::API::Interface::HttpPost { +private: +public: + InvalidateToken(); + + const CocoaTweet::API::Model::OAuthToken process( + std::weak_ptr _oauth); +}; +} // namespace CocoaTweet::API::OAuth1 + #endif \ No newline at end of file diff --git a/src/cocoatweet/api/oauth1/oauth.cc b/src/cocoatweet/api/oauth1/oauth.cc index bc863ba..24392b7 100644 --- a/src/cocoatweet/api/oauth1/oauth.cc +++ b/src/cocoatweet/api/oauth1/oauth.cc @@ -34,4 +34,12 @@ const CocoaTweet::API::Model::OAuthToken OAuth::accessToken( accessToken.oauthVerifier(_verifier); return accessToken.process(oauth_); } + +const CocoaTweet::API::Model::OAuthToken OAuth::invalidateToken() const { + // auto key = oauth_.lock()->key(); + // key.authType(CocoaTweet::Authentication::Key::AUTH_TYPE::OAUTH10A); + // auto oauth = std::make_shared(key); + CocoaTweet::API::OAuth1::InvalidateToken invalidateToken; + return invalidateToken.process(oauth_); +} } // namespace CocoaTweet::API::OAuth1 diff --git a/src/cocoatweet/api/oauth1/oauth.h b/src/cocoatweet/api/oauth1/oauth.h index 75453d0..8f4f952 100644 --- a/src/cocoatweet/api/oauth1/oauth.h +++ b/src/cocoatweet/api/oauth1/oauth.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -25,6 +26,7 @@ public: const std::string authorize(const CocoaTweet::API::Model::OAuthToken _oauthToken) const; const CocoaTweet::API::Model::OAuthToken accessToken( const CocoaTweet::API::Model::OAuthToken _oauthToken, const std::string _verifier) const; + const CocoaTweet::API::Model::OAuthToken invalidateToken() const; }; } // namespace CocoaTweet::API::OAuth1 diff --git a/src/cocoatweet/api/oauth1/requestToken.cc b/src/cocoatweet/api/oauth1/requestToken.cc index f0a39f3..6fe201b 100644 --- a/src/cocoatweet/api/oauth1/requestToken.cc +++ b/src/cocoatweet/api/oauth1/requestToken.cc @@ -14,7 +14,7 @@ void RequestToken::oauthCallback(const std::string& _oauthCallback) { CocoaTweet::API::Model::OAuthToken RequestToken::process( std::weak_ptr _oauth) { - auto key = oauth_.lock()->key(); + auto key = _oauth.lock()->key(); key.authType(CocoaTweet::Authentication::Key::AUTH_TYPE::OAUTH10A); auto oauth = std::make_shared(key);