Help us understand the problem. What is going on with this article?

TwitterAPIをPythonで叩いてツイート&画像ツイート&自分のTL表示

初めてまともに記事を書きます。
TwitterAPIに受かったので、試行錯誤しながらいろいろしました。
参考にさせていただいたもの
Pythonでサクッと簡単にTwitterAPIを叩いてみる

プログラム

config.py
CONSUMER_KEY = "**************"
CONSUMER_SECRET = "**************"
ACCESS_TOKEN = "**************"
ACCESS_TOKEN_SECRET = "**************"

認証キーをconfigに保存しておくと便利です。

twiiterAPI.py
# -*- coding:utf-8 -*-
import json, config
import time

from requests_oauthlib import OAuth1Session

CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK, CS, AT, ATS)

print('何をしますか?(tw,mdtw,tl)')
jump=input('>>')

if(jump=='tw'):

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

    print("ツイートの内容を入力")
    tweet = input('>> ')
    print('----------------------------------------------------')

    params = {"status" : tweet}

    req = twitter.post(url, params = params)

    if req.status_code == 200:
           print("ツイートしました")
    else:
          print("ERROR : %d"% req.status_code)

    input("prompt: ")

if(jump=='mdtw'):

    h=1
    url_media = "https://upload.twitter.com/1.1/media/upload.json"
    url_text = "https://api.twitter.com/1.1/statuses/update.json"

    print("添付画像の名前を入力(jpg形式のみ)")
    media_name = input('>> ')
    print('-----------------------------------')

    files = {"media" : open(media_name+".jpg", 'rb')}
    req_media = twitter.post(url_media, files = files)

    if req_media.status_code != 200:
        print("MEDIA UPLOAD FAILED... %s", req_media.text)
        exit()

    media_id = json.loads(req_media.text)['media_id']
    print("MEDIA ID: %d" % media_id)

    print("ツイートの内容を入力")
    tweet = input('>> ')
    print('-----------------------------------')

    params = {"status" : tweet, "media_ids" : [media_id]}
    req_media = twitter.post(url_text, params = params)

    if req_media.status_code != 200:
       print("TEXT UPLOAD FAILED... %s", req_text.text)
       exit()

    print("ツイートしました")

    input("prompt: ")

if(jump=='tl'):

    h=1
    url = "https://api.twitter.com/1.1/statuses/user_timeline.json" #タイムライン取得エンドポイント
    print("何件取得しますか?")
    n=input('>>')


    params ={'count' : n} #取得数
    res = twitter.get(url, params = params)

    if res.status_code == 200: #正常通信出来た場合
       timelines = json.loads(res.text) #レスポンスからタイムラインリストを取得
       for line in timelines: #タイムラインリストをループ処理
            #json形式のファイルから値を取得(※)
            print(line['user']['name']+'::'+line['text'])
            print(line['created_at'])
            print('*******************************************')
    else: #正常通信出来なかった場合
            print("Failed: %d" % res.status_code)
    input("prompt: ")

elif(h==0):
    print("入力エラーです")
    timetime.sleep(10)

"tw"と入力するとツイート
"mdtw"と入力するとメディアツイート
"tl"と入力すると自分のツイートを何件表示するかが選べる

入力によって処理を分岐しています。
変数hは終了時に最後の"入力エラーです"を表示させないようにするためです(他にもっといい方法がありそう)

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away