Skip to content

Instantly share code, notes, and snippets.

@kivantium
Created November 10, 2016 06:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kivantium/4fae838488cf8b4def3fb12ffa5f1d38 to your computer and use it in GitHub Desktop.
Save kivantium/4fae838488cf8b4def3fb12ffa5f1d38 to your computer and use it in GitHub Desktop.
GNU Social from Python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
from requests_oauthlib import OAuth1Session
from requests_oauthlib import OAuth1
from urlparse import parse_qs
# アプリのページから取得したkey, secretを入力
client_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
request_token_url = 'https://freezepeach.xyz/api/oauth/request_token'
authorization_url = 'https://freezepeach.xyz/api/oauth/authorize'
access_token_url = 'https://freezepeach.xyz/api/oauth/access_token'
oauth = OAuth1Session(client_key, client_secret, callback_uri='oob')
fetch_response = oauth.fetch_request_token(request_token_url)
resource_owner_key = fetch_response.get('oauth_token')
resource_owner_secret = fetch_response.get('oauth_token_secret')
authorization_url = oauth.authorization_url(authorization_url)
print authorization_url
verifier = raw_input('PIN: ')
oauth = OAuth1(client_key,
client_secret=client_secret,
resource_owner_key=resource_owner_key,
resource_owner_secret=resource_owner_secret,
verifier=verifier)
r = requests.post(url=access_token_url, auth=oauth)
credentials = parse_qs(r.content)
access_token = credentials.get('oauth_token')[0]
access_token_secret = credentials.get('oauth_token_secret')[0]
print "Access Token:", access_token
print "Access Token Secret:", access_token_secret
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from requests_oauthlib import OAuth1Session
consumer_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# ツイート投稿用のURL
url = "https://freezepeach.xyz/api/statuses/update.json"
# ツイート本文
params = {"status": "Hello, World!"}
# OAuth認証で POST method で投稿
twitter = OAuth1Session(consumer_key, consumer_secret, access_token, access_token_secret)
req = twitter.post(url, params = params)
# レスポンスを確認
if req.status_code == 200:
print ("OK")
else:
print ("Error: %d" % req.status_code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment