コード例 #1
0
ファイル: api.py プロジェクト: nasa9084/charakoba_fault_info
def tweet(status):
    ENDPOINT = 'https://api.twitter.com/1.1/statuses/update.json'
    CONFIG = cfg['TWITTER_INFO']
    twitter = OAuth(
        CONFIG['API_KEY'],
        CONFIG['API_SECRET'],
        CONFIG['ACCESS_TOKEN'],
        CONFIG['ACCESS_SECRET']
    )
    res = twitter.post(
        ENDPOINT,
        params={"status": status}
    )
    if res.status_code == 200:
        return True
    else:
        return False
コード例 #2
0
import json
from requests_oauthlib import OAuth1Session
import time

CK = "9hHpHgwHErwwDNkN2vrUtfPek"
CS = "TiuYZh9xqzHYFeHxmGffgWnAFMWZtBvvYSftCHgpRgB7M67sJL"
AT = "133292143-9TTJxuj4HcfSkMkZlHy0Sz3gbd0XGcEiBGkMi1jc"
ATS = "IQ0ksP6UX7zgM5H2ejxt8lytDnTIs80zhX1VR6Baaxm6z"

twitter = OAuth1Session(CK, CS, AT, ATS)  #認証処理

url = "https://api.twitter.com/1.1/statuses/user_timeline.json"
params = {'count': 5}
res = twitter.get(url, params=params)
"""
if res.status_code == 200: #正常通信出来た場合
    timelines = json.loads(res.text) #レスポンスからタイムラインリストを取得
    for line in timelines: #タイムラインリストをループ処理
        print(line['user']['name']+'::'+line['text'])
        print(line['created_at'])
        print('*******************************************')
else: #正常通信出来なかった場合
    print("Failed: %d" % res.status_code)
"""
while True:
    time.sleep(1)
    cursor = -1
    while cursor != 0:
        # 情報取得
        api = 'https://api.twitter.com/1.1/followers/list.json'
        params = {
コード例 #3
0
#!/usr/bin/env python3
#coding:utf-8
'''
This code is for tweet posting with images to Twitter API.
'''
import json
import os
from requests_oauthlib import OAuth1Session

# 認証(環境変数からAPIキー・シークレット呼び出し)
CONSUMER_KEY = os.environ['tw_consumer_key01']
CONSUMER_SECRET = os.environ['tw_consumer_secret01']
ACCESS_TOKEN = os.environ['tw_access_token01']
ACCESS_TOKEN_SECRET = os.environ['tw_access_token_secret01']
TWITTER = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN,
                        ACCESS_TOKEN_SECRET)

URL_MEDIA = "https://upload.twitter.com/1.1/media/upload.json"
URL_TEXT = "https://api.twitter.com/1.1/statuses/update.json"
PATH_LIST_IMAGES = [
    "/Users/vbit/Desktop/images/1.png", "/Users/vbit/Desktop/images/2.jpg",
    "/Users/vbit/Desktop/images/3.jpg", "/Users/vbit/Desktop/images/4.jpg"
]

# OAuth認証 セッションを開始
TWITTER = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN,
                        ACCESS_TOKEN_SECRET)

MEDIA_IDS = ""

# 画像の枚数分ループ
コード例 #4
0
def post(event, context):
    logger = logging.getLogger()
    logLevel = logging.INFO

    logger.info(event)

    API_KEY = os.environ['API_KEY']
    API_SECRET = os.environ['API_SECRET']
    get_user_url = 'https://api.twitter.com/1.1/users/show.json'

    if 'body' not in event:
        logger.error('400 No body in event')
        raise ce.CustomError(400, 'No body in event')

    request_body = json.loads(event['body'])
    access_token = request_body['access_token']

    if 'access_token' not in request_body:
        logger.error('400 No access_token in body')
        raise ce.CustomError(400, 'No access_token in body')

    try:
        oauth_token = access_token['oauth_token']
        oauth_token_secret = access_token['oauth_token_secret']
        user_id = access_token['user_id']
        screen_name = access_token['screen_name']

        twitter = OAuth1Session(API_KEY, API_SECRET, oauth_token, oauth_token_secret)

        params = {
            'user_id': user_id,
            'screen_name': screen_name
        }

        twitter_response = twitter.get(get_user_url, params=params)
        user = json.loads(twitter_response.text)

        # profile_image_url_httpsの末尾の「_normal」を削除して、originalサイズのURLを生成
        root, ext = os.path.splitext(user['profile_image_url_https'])
        profile_image_url = root[0:-7] + ext

        icon_data = base64.b64encode(requests.get(profile_image_url).content)
        icon64 = 'data:image/png;base64,' + icon_data.decode('utf-8')

    except Exception as e:
        logger.error(e)
        raise ce.CustomError(500, 'Twitter Error')

    headers = {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Headers': 'Content-Type,Access-Control-Allow-Origin'
    }
    body = {
        'icon': icon64
    }

    logger.info(body)

    response = {
        'statusCode': 200,
        'headers': headers,
        'body': json.dumps(body)
    }
    return response
コード例 #5
0
import config  # ツイッターAPIトークン取得
import util_func as uf  # 自作関数モジュール呼び出し
import tweepy
import numpy as np
from requests_oauthlib import OAuth1Session
import json

consumer_key = config.consumer_key
consumer_secret = config.consumer_secret
access_token = config.access_token
access_token_secret = config.access_token_secret
twitter = OAuth1Session(consumer_key, consumer_secret, access_token,
                        access_token_secret)

# tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)  # 利用禁止期間の解除を待機後に実行する


class GetTweetFromTrend:
    def __init__(self, n_trends, woe_id=23424856):

        # Twitter API
        self.n_trends = n_trends  # トレンド取得数
        self.woe_id = woe_id  # エリアID

# twitter api トレンドリスト取得

    def get_trends(self):
        trends = api.trends_place(
コード例 #6
0
 def __post_init__(self) -> None:
     self.oauth = OAuth1Session(self.schoology_key, self.schoology_secret)
コード例 #7
0
from dateutil import parser
import boto3
import random
import hashlib
import base64
import requests
from xml.sax.saxutils import *

## Twitter系の変数
# OAuth認証 セッションを開始
CK = os.getenv('Twitter_Consumer_Key')  # Consumer Key
CS = os.getenv('Twitter_Consumer_Secret_Key')  # Consumer Secret
AT = os.getenv('Twitter_Access_Token_Key')  # Access Token
AS = os.getenv('Twitter_Access_Token_Secret')  # Accesss Token Secert

twitter = OAuth1Session(CK, CS, AT, AS)

twitterListID = 795464117347721216  # TwitterリストID
twitterListCount = 500  # 一度に取得するリストのアカウント数
twitterFav = 20  # 集計対象RT数
twitterRT = 20  # 集計対象Fav数

## DynamoDB系の変数
tableNameSequence = 'sequences'  # AtomicCounter用のテーブル名
tableSequensesColumnName = 'my_table'  # AtomicCounter用のカラム名
tableTweetName = 'nazo-tweet-tables'  # Twitter謎格納用のテーブル名

#テスト用
#tableNameSequence = 'sequences-test'
#tableTweetName = 'nazo-tweet-tables-test'
regionName = 'ap-northeast-1'  # 使用するリージョン名
コード例 #8
0
#read config file
config = ConfigParser.SafeConfigParser()
try:
    config.read('twitter.conf')
    CK = config.get('twitter', 'CK')
    CS = config.get('twitter', 'CS')
    AT = config.get('twitter', 'AT')
    AS = config.get('twitter', 'AS')
except:
    print "Error occured in reading config"
    exit()
print("CK: " + CK)
print("CS: " + CS)
print("AT: " + AT)
print("AS: " + AS)
session = OAuth1Session(CK, CS, AT, AS)

url = 'https://api.twitter.com/1.1/statuses/home_timeline.json'
params = {'count': 100}

TweetList = []

for i in range(1):
    req = session.get(url, params=params)
    if req.status_code == 200:
        timeline = json.loads(req.text)
        for tweet in timeline:
            TweetList.append(tweet["text"])
    else:
        print("Error: %d" % req.status_code)
#    time.sleep(240)
コード例 #9
0
ファイル: pyreads.py プロジェクト: htwight/pyreads
 def session(self):
     return OAuth1Session(self.client_key, client_secret=self.client_secret)
コード例 #10
0
# coding: utf-8

from requests_oauthlib import OAuth1Session
import data     

url = "https://api.twitter.com/1.1/account/update_profile.json"

params = {"name":"野獣先輩","description":"二十四歳、学生です","url":"114514.com","location":"下北沢"}

twitter = OAuth1Session(data.CK, data.CS, data.AT, data.AS)
req = twitter.post(url, params = params)
コード例 #11
0
ファイル: get_mention_1.py プロジェクト: sun-yryr/twitter
import sys
import json
from requests_oauthlib import OAuth1Session
import config
from time import sleep


def main():
    url_mentions = "https://api.twitter.com/1.1/statuses/user_timeline.json"
    url_retweet = "https://api.twitter.com/1.1/statuses/retweet/1147182723179532288.json"
    url_unretweet = "https://api.twitter.com/1.1/statuses/unretweet/1147182723179532288.json"
    params = {"count": 1}
    res = oauth.get(url=url_mentions)
    if res.status_code == 200:
        fp = open("./test.json", "w")
        fp.write(res.text)
        fp.close()
    else:
        print(res.text)


if __name__ == '__main__':
    try:
        oauth = OAuth1Session(config.Twi_CK, config.Twi_CS, config.Twi_AT,
                              config.Twi_ATS)
    except:
        print("oauth error\n")
        sys.exit(1)

    main()
コード例 #12
0
        TUMBLR_POST_CACHE_DICT[unique_ident] = resp
        fref = open('tumblr_post_data.json', 'w')
        dumped_data = json.dumps(TUMBLR_POST_CACHE_DICT)
        fref.write(dumped_data)
        fref.close()
        return TUMBLR_POST_CACHE_DICT[unique_ident]


#AUTHORIZATION

request_token_url = 'http://www.tumblr.com/oauth/request_token'
authorize_url = 'http://www.tumblr.com/oauth/authorize'
access_token_url = 'http://www.tumblr.com/oauth/access_token'

# STEP 1: Obtain request token
oauth_session = OAuth1Session(consumer_key, client_secret=consumer_secret)
fetch_response = oauth_session.fetch_request_token(request_token_url)
resource_owner_key = fetch_response.get('oauth_token')
resource_owner_secret = fetch_response.get('oauth_token_secret')

# STEP 2: Authorize URL + Rresponse
full_authorize_url = oauth_session.authorization_url(authorize_url)

# Redirect to authentication page
print('\nPlease go here and authorize:\n{}'.format(full_authorize_url))
redirect_response = input('Allow then paste the full redirect URL here:\n')

# Retrieve oauth verifier
oauth_response = oauth_session.parse_authorization_response(redirect_response)

verifier = oauth_response.get('oauth_verifier')
コード例 #13
0
ファイル: tw_search.py プロジェクト: ko1-ota/tw_RTlottery
# tw_search.py

import json, sys
import config
from datetime import datetime as dt
import pytz
from requests_oauthlib import OAuth1Session
from numpy import random as nrnd

API_KEY = config.API_KEY
API_SECRET = config.API_SECRET
ACCESS_TOKEN = config.ACCESS_TOKEN
ACCESS_TOKEN_SECRET = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)


def parse_date(date_original):
    date_formatted = dt.strptime(date_original, "%a %b %d %H:%M:%S %z %Y")
    return date_formatted


def search_tweets(keyword):
    url = "https://api.twitter.com/1.1/search/tweets.json"
    req = twitter.get(url, params={'q': keyword})

    if req.status_code == 200:
        timeline = json.loads(req.text)
        return timeline
    else:
        print("ERROR: %d" % req.status_code)
コード例 #14
0
 def __init__(self):
     self.session = OAuth1Session(CK, CS, AT, AS)
コード例 #15
0
import os

from requests_oauthlib import OAuth1Session

#環境変数から認証情報を取得する
CONSUMER_KEY = os.environ['CONSUMER_KEY']
CONSUMER_SECRET = os.environ['CONSUMER_SECRET']
ACCESS_TOKEN = os.environ['ACCESS_TOKEN']
ACCESS_TOKEN_SECRET = os.environ['ACCESS_TOKEN_SECRET']

#認証情報をつかってOAuth1Sessionオブジェクトを得る
twitter = OAuth1Session(CONSUMER_KEY,
                        client_secret=CONSUMER_SECRET,
                        resource_owner_key=ACCESS_TOKEN,
                        resource_owner_secret=ACCESS_TOKEN_SECRET)

#ユーザーのタイムラインを取得
response = twitter.get(
    'https://api.twitter.com/1.1/statuses/home_timeline.json')

for status in response.json():
    print('@' + status['user']['screen_name'], status['text'])
コード例 #16
0
ファイル: weather1.py プロジェクト: k-nish/twitter
#encoding: UTF-8
from requests_oauthlib import OAuth1Session
import json
import settings
import urllib2, sys

twitter = OAuth1Session(settings.CONSUMER_KEY, settings.CONSUMER_SECRET,
                        settings.ACCESS_TOKEN, settings.ACCESS_TOKEN_SECRET)

try:
    citycode = sys.argv[1]
except:
    citycode = '130010'  #デフォルト地域を東京にする
resp = urllib2.urlopen(
    'http://weather.livedoor.com/forecast/webservice/json/v1?city=%s' %
    citycode).read()

resp = json.loads(resp)

result = u"東京の天気"
for forecast in resp['forecasts']:
    result = result + "\n" + forecast['dateLabel'] + '(' + forecast[
        'date'] + ')' + forecast['telop']

params = {"status": result}
req = twitter.post("https://api.twitter.com/1.1/statuses/update.json",
                   params=params)

# レスポンスを確認
if req.status_code == 200:
    print("OK")
コード例 #17
0
import time
import json
import os
import pprint
from dateutil.parser import parse
from datetime import datetime
from requests_oauthlib import OAuth1Session

CONSUMER_KEY_TWEET_NEWS = os.environ['CONSUMER_KEY_TWEET_NEWS']
CONSUMER_SECRET_TWEET_NEWS = os.environ['CONSUMER_SECRET_TWEET_NEWS']
ACCESS_TOKEN_TWEET_NEWS = os.environ['ACCESS_TOKEN_TWEET_NEWS']
ACCESS_TOKEN_SECRET_TWEET_NEWS = os.environ['ACCESS_TOKEN_SECRET_TWEET_NEWS']

twitter = OAuth1Session(CONSUMER_KEY_TWEET_NEWS, CONSUMER_SECRET_TWEET_NEWS,
                        ACCESS_TOKEN_TWEET_NEWS,
                        ACCESS_TOKEN_SECRET_TWEET_NEWS)


# メイン処理
def tweet_main():
    # 1 タイムライン取得
    req, timeline_list = get_timeline()

    result_list = []
    # news_data, url, title, description を返却用に加工し格納
    for timeline in timeline_list['statuses']:
        news_dict = {}
        # ツイート生成時刻の取得 + フォーマット成型
        news_dict['news_date'] = parse(
            timeline['created_at']).strftime('%Y-%m-%d %H:%M:%S')
        # #nhk_newsでtitle + url を分割
コード例 #18
0
    def __init__(self):

        # Twitter APIへ認証し、接続する。
        self.twitter = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET,
                                     ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
        print('Twitter connected.')
コード例 #19
0
ファイル: tweets.py プロジェクト: takumi-rinlog/myPortfolio
# twitter ツイート
# ---------------------------

# twi 認証-----------------------------------
import twi_config
from requests_oauthlib import OAuth1Session

ck = twi_config.API_key
cs = twi_config.API_secret_key
at = twi_config.Access_token
ats = twi_config.Access_token_secret
twitter = OAuth1Session(ck, cs, at, ats)
# -------------------------------------------

url = "https://api.twitter.com/1.1/statuses/update.json"

print("つぶやく内容を入力してください")
print("入力後はエンター")
tweet = input(">> ")
print("-----------------------------------")

prm = {"status": tweet}
req = twitter.post(url, params=prm)

if req.status_code == 200:
    print("ツイートが送信されました")
else:
    print("ERROR: %d" % req.status_code)
コード例 #20
0
ファイル: oauth-twitter.py プロジェクト: gpottow/lec10si206
client_key = secrets.client_key
client_secret = secrets.client_secret

# STEP 1: GET A REQUEST TOKEN
# We have to start by obtaining a 'request' token
# We will supply our client key and client secret
# ...otherwise no token -- you can't even get in the door!
#
# At this point we have provided our application's credentials
# so that we have the privelege to do more stuff, like request
# authorization for a particular user.

request_token_url = 'https://api.twitter.com/oauth/request_token'

oauth = OAuth1Session(client_key, client_secret=client_secret)
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')

# STEP 2: GET AUTHORIZATION FROM THE USER
# Now we have "request privileges." What will we do with all that power?
# We will send our user over to the service provider (Twitter, in this case)
# to log in. After they do, Twitter will generate a special URL,
# unique to this operation (THIS request for THIS user by THIS application).
# Our application can then go to that URL to get the very special
# verification token that we can use to retreive THIS user's data for use
# in THIS application

base_authorization_url = 'https://api.twitter.com/oauth/authorize'
コード例 #21
0
from requests_oauthlib import OAuth1Session
import json

data_list = []
context = {}
cnt = 0

env = Environment(loader=FileSystemLoader('./', encoding='utf8'))
tmpl = env.get_template('template.html')

API_Key = setting.API_Key
API_Secret_Key = setting.API_Secret_Key
Access_Token = setting.Access_Token
Access_Token_Secret = setting.Access_Token_Secret

twitter = OAuth1Session(API_Key, API_Secret_Key, Access_Token, Access_Token_Secret)
search_api = 'https://api.twitter.com/1.1/search/tweets.json'
oembed_api = 'https://publish.twitter.com/oembed'

params = {
    # 波ダッシュ、全角チルダ
    'q': '#はぁ〜また買っちゃった OR #はぁ~また買っちゃった -filter:retweets',
    'result_type': 'recent',
    'count': 10,
}

print('get res...')
res = twitter.get(search_api, params=params)
tweets = json.loads(res.text)

print('embed...')
コード例 #22
0
ファイル: miyatwi.py プロジェクト: nakano57/miyaman_bot
    def __init__(self, modelNo):
        self.twitter = OAuth1Session(self.CK, self.CS, self.AT,
                                     self.ATS)  # 認証処理

        self.my_model_no = modelNo
コード例 #23
0
ファイル: result.py プロジェクト: stash4/tdu15fibot
import os
import psycopg2
import time
import urllib
from requests_oauthlib import OAuth1Session
from tweet import tweet
from db import connect_db

# Twitter OAuth
twitter = OAuth1Session(os.environ['CONSUMER_KEY'],
                        os.environ['CONSUMER_SECRET'],
                        os.environ['ACCESS_TOKEN'],
                        os.environ['ACCESS_TOKEN_SECRET'])

conn = connect_db()
cur = conn.cursor()

table = [
    '矢島', '齊藤', '小坂', '中島', '高橋', '鉄谷', '川澄', '増田', '猪俣', '岩井', '大野', '竜田',
    '山田', '池田', '森谷', '井ノ上'
]

tw = '研究室配属 第一次募集の希望登録数は,以下の結果になりました.\n'

for i in range(16):
    # prof研の人数をdbから取得
    prof = table[i]
    cur.execute('SELECT curt FROM remain WHERE prof=%s;', (prof, ))
    curt = cur.fetchone()[0]

    cur.execute('SELECT cap FROM remain WHERE prof=%s;', (prof, ))
コード例 #24
0
import json, config
from requests_oauthlib import OAuth1Session

""" Connect session """
# auth key
CX = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET

# connect
twitter = OAuth1Session(CX, CS, AT, ATS)

""" Get timeline from my account """
# endpoint for request timeline
url = "https://api.twitter.com/1.1/statuses/user_timeline.json"

# access to endpoint
params = {'count': 5}
res = twitter.get(url, params = params)

if res.status_code == 200:
    # output
    timelines = json.loads(res.text)
    for line in timelines:
        print(line['user']['name']+'::'+line['text'])
        print(line['created_at'])
        print('*****************************************')
else:
    print("Failed: %d" % res.status_code)
コード例 #25
0
from requests_oauthlib import OAuth1Session
import json
from tkinter import *
from PIL import ImageTk, Image

#my_own_module
import twitter_tools

#IMPORTANT: To run the programme you have to add your client and owner keys.
#You can easily get them from: www.https://developer.twitter.com/en
twitter = OAuth1Session(client_key='YOUR KEY HERE',
                        client_secret='YOUR KEY HERE',
                        resource_owner_key='YOUR KEY HERE',
                        resource_owner_secret='YOUR KEY HERE')

root = Tk()
root.title('PersonaFolowerz')
root.iconbitmap('twitter_r_icon.ico')
root.configure(background='red')

persons = []


def twitterdata_for_label(name, id_, description, location, followers):

    persons.append((Label(root, fg="white",
                          bg="red"), Label(root, fg="white", bg="black")))

    persons[len(persons) -
            1][0]["text"] = (name + '   twitter id: ' + id_ + '\n' +
                             description + '\n' + location)
コード例 #26
0
import json
import config
from requests_oauthlib import OAuth1Session

CK = config.CONSUMER_API_KEY
CS = config.CONSUMER_API_SELECT_KEY
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
oauth = OAuth1Session(CK, CS, AT, ATS)
endpoint = "https://api.twitter.com/1.1/statuses/user_timeline.json"

params = {"screen_name": "****", "exclude_replies": True, "count": 200}
json_list = []
for i in range(16):
    response = oauth.get(endpoint, params=params)

    if response.status_code == 200:
        tweets = json.loads(response.text)
        params["max_id"] = tweets[-1]['id']
        json_list += [line for line in tweets]
    else:
        print("Failed :%d" % response.status_code)

with open("test.json", "a") as f:
    json.dump(json_list, f)
コード例 #27
0
from requests_oauthlib import OAuth1Session
import os
import json

# Authentication

from config import *

request_token_url = "https://api.twitter.com/oauth/request_token"
oauth = OAuth1Session(consumer_key, client_secret=consumer_secret)
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")
print("Got OAuth token: {}".format(resource_owner_key))

# Get authorization
base_authorization_url = "https://api.twitter.com/oauth/authorize"
authorization_url = oauth.authorization_url(base_authorization_url)
print("Please go here and authorize: {}".format(authorization_url))
verifier = input("Paste the PIN here: ")

# Get the access token
access_token_url = "https://api.twitter.com/oauth/access_token"
oauth = OAuth1Session(
    consumer_key,
    client_secret=consumer_secret,
    resource_owner_key=resource_owner_key,
    resource_owner_secret=resource_owner_secret,
    verifier=verifier,
)
コード例 #28
0
def get_oauth_session():
    # Init
    base_url_prod = r"https://api.etrade.com"
    base_url_dev = r"https://apisb.etrade.com"
    req_token_url = r"https://api.etrade.com/oauth/request_token"
    auth_token_url = r"https://us.etrade.com/e/t/etws/authorize"
    access_token_url = r"https://api.etrade.com/oauth/access_token"
    client_key = config["DEFAULT"]["CONSUMER_KEY"]
    renew_access_token_url = r"https://api.etrade.com/oauth/renew_access_token"

    # Check if file is older than today, token expires at midnight US Eastern, remove file if it's old so that we can re-auth session
    if (os.path.exists('access_token.json')):
        fname = pathlib.Path('access_token.json')
        tz = timezone('US/Eastern')
        create_time = datetime.fromtimestamp(fname.stat().st_ctime, tz)
        today_time = datetime.now(tz)
        if not (today_time.date() == create_time.date()):
            os.remove("access_token.json")

    # Check if access_token is saved and still valid
    if (os.path.exists('access_token.json')):
        try:
            #load access_token
            with open('access_token.json') as json_file:
                access_token = json.load(json_file)

            session = OAuth1Session(
                client_key=config["DEFAULT"]["CONSUMER_KEY"],
                client_secret=config["DEFAULT"]["CONSUMER_SECRET"],
                resource_owner_key=access_token['oauth_token'],
                resource_owner_secret=access_token['oauth_token_secret'],
                signature_type="AUTH_HEADER",
            )
            #test to make sure session works by renewing token
            session.get(renew_access_token_url)
        except:
            print(
                "Unable to get authenticated session, removing access_token.json"
            )
            print("Please try running command again.")
            #os.remove("access_token.json")
            sys.exit(1)
    else:
        try:
            # Set up session
            session = OAuth1Session(
                client_key=config["DEFAULT"]["CONSUMER_KEY"],
                client_secret=config["DEFAULT"]["CONSUMER_SECRET"],
                callback_uri="oob",
                signature_type="AUTH_HEADER",
            )
            session.fetch_request_token(req_token_url)
            authorization_url = session.authorization_url(auth_token_url)
            akey = session.parse_authorization_response(authorization_url)
            resource_owner_key = akey["oauth_token"]
            formated_auth_url = "%s?key=%s&token=%s" % (
                auth_token_url,
                client_key,
                resource_owner_key,
            )
            #Open webbrowser to get text code from E*Trade
            webbrowser.open(formated_auth_url)
            text_code = input(
                "Please accept agreement and enter text code from browser: ")
            session._client.client.verifier = text_code
            #Get access_token
            access_token = session.fetch_access_token(access_token_url)
            #Save access_token to cache
            with open('access_token.json', 'w') as json_file:
                json.dump(access_token, json_file)
            os.chmod("access_token.json", 0o600)

        except:
            print(
                "Unable to get authenticated session, check config.ini for correct consumer_key and consumer_secret"
            )
            sys.exit(1)

    return session
コード例 #29
0
# -*- coding:utf-8 -*-
import json
from requests_oauthlib import OAuth1Session
from twitter import Twitter, OAuth
from janome.tokenizer import Tokenizer
import collections
import re
from collections import Counter, defaultdict

#APIキーの設置
CONSUMER_KEY = 'YOURS'
CONSUMER_SECRET = 'YOURS'
ACCESS_TOKEN = 'YOURS'
ACCESS_SECRET = 'YOURS'

twitter = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN,
                        ACCESS_SECRET)
url = "https://api.twitter.com/1.1/search/tweets.json"


def get_userstweets(user_id, tweet_id):
    t = Twitter(
        auth=OAuth(ACCESS_TOKEN, ACCESS_SECRET, CONSUMER_KEY, CONSUMER_SECRET))

    remain = True  #ループ判定
    max_id = tweet_id
    remainNum = 0
    numberOfTweets = 10  #取ってくるtweetの数
    count = 5  #一度のアクセスで何件取ってくるか
    while remain:
        aTimeLine = t.statuses.user_timeline(user_id=user_id,
                                             count=count,
コード例 #30
0
def create_oath_session(oath_key_dict):
    oath = OAuth1Session(oath_key_dict["consumer_key"],
                         oath_key_dict["consumer_secret"],
                         oath_key_dict["access_token"],
                         oath_key_dict["access_token_secret"])
    return oath
コード例 #31
0
ファイル: admin.py プロジェクト: dskiba/Robin_wedding
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        config = SocialConfig.get_solo()

        # Twitter
        if config.twitter_client_id and config.twitter_client_secret and config.twitter_access_token_secret:
            from requests_oauthlib import OAuth1Session
            redirect_uri = self.request.build_absolute_uri(
                resolve_url('admin_social_networks:twitter_token'))

            oauth_client = OAuth1Session(
                client_key=config.twitter_client_id,
                client_secret=config.twitter_client_secret,
                callback_uri=redirect_uri,
            )

            try:
                oauth_client.fetch_request_token(
                    'https://api.twitter.com/oauth/request_token')
            except ValueError:
                raise Http404

            token_url = oauth_client.authorization_url(
                'https://api.twitter.com/oauth/authorize')

            self.fields['twitter_token'].initial = token_url
            self.fields['twitter_token'].help_text = _(
                'Add redirect URI "%s" to your Twitter application'
            ) % redirect_uri

        # Facebook
        if config.facebook_client_id and config.facebook_client_secret:
            redirect_uri = self.request.build_absolute_uri(
                resolve_url('admin_social_networks:facebook_token'))
            token_url = ('https://www.facebook.com/dialog/oauth'
                         '?client_id={client_id}&redirect_uri={redirect_uri}'
                         '&scope={scope}&state=&response_type=code').format(
                             client_id=config.facebook_client_id,
                             redirect_uri=redirect_uri,
                             scope='manage_pages,publish_pages',
                         )
            self.fields['facebook_token'].initial = token_url
            self.fields['facebook_token'].help_text = _(
                'Add redirect URI "%s" to your Facebook application'
            ) % redirect_uri

        # Instagram
        if config.instagram_client_id and config.instagram_client_secret:
            redirect_uri = self.request.build_absolute_uri(
                resolve_url('admin_social_networks:instagram_token'))
            token_url = ('https://api.instagram.com/oauth/authorize/'
                         '?client_id={client_id}&redirect_uri={redirect_uri}'
                         '&response_type=code').format(
                             client_id=config.instagram_client_id,
                             redirect_uri=redirect_uri,
                         )
            self.fields['instagram_token'].initial = token_url
            self.fields['instagram_token'].help_text = _(
                'Add redirect URI "%s" to your Instagram application'
            ) % redirect_uri

        # LinkedIn
        if config.linkedin_client_id and config.linkedin_client_secret:
            redirect_uri = self.request.build_absolute_uri(
                resolve_url('admin_social_networks:linkedin_token'))
            token_url = (
                'https://www.linkedin.com/oauth/v2/authorization'
                '?client_id={client_id}&redirect_uri={redirect_uri}'
                '&response_type=code&state={state}&scope={scope}').format(
                    client_id=config.linkedin_client_id,
                    redirect_uri=redirect_uri,
                    state=uuid.uuid1(),
                    scope='r_basicprofile%20w_share',
                )
            self.fields['linkedin_token'].initial = token_url
            self.fields['linkedin_token'].help_text = _(
                'Add redirect URI "%s" to your LinkedIn application'
            ) % redirect_uri