Created
October 3, 2022 07:21
-
-
Save fukata/5fd590eed5ab45a1361cf511842e114f to your computer and use it in GitHub Desktop.
Tweet by Twitter API v2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'oauth' | |
require 'json' | |
require 'typhoeus' | |
require 'oauth/request_proxy/typhoeus_request' | |
def create_tweet(url, oauth_params, payload) | |
options = { | |
method: :post, | |
headers: { | |
"User-Agent": "v2CreateTweetRuby", | |
"content-type": "application/json", | |
}, | |
body: JSON.dump(payload) | |
} | |
request = Typhoeus::Request.new(url, options) | |
oauth_helper = OAuth::Client::Helper.new(request, oauth_params.merge(request_uri: url)) | |
request.options[:headers].merge!({"Authorization" => oauth_helper.header}) # Signs the request | |
response = request.run | |
return response | |
end | |
def main | |
consumer_key = ENV['TWITTER_API_KEY'] | |
consumer_secret = ENV['TWITTER_API_SECRET_KEY'] | |
access_token = ENV['TWITTER_ACCESS_TOKEN'] | |
access_token_secret = ENV['TWITTER_ACCESS_TOKEN_SECRET'] | |
consumer = OAuth::Consumer.new(consumer_key, consumer_secret, | |
site: 'https://api.twitter.com', | |
authorize_path: '/oauth/authenticate', | |
debug_output: true) | |
token = OAuth::AccessToken.new(consumer, access_token, access_token_secret) | |
oauth_params = {consumer:consumer, token: token} | |
create_tweet_url = "https://api.twitter.com/2/tweets" | |
payload = {text: "HELLO"} | |
pp create_tweet(create_tweet_url, oauth_params, payload) | |
end | |
main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment