質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

264閲覧

ブラウザを介さずにtweetしたいができない。

NieR

総合スコア16

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/06/26 13:44

編集2017/07/04 01:12

twitterのAPIを使わずにtweetしようと考えているのですが、tweetされません。
実行すると
[+] ログイン完了 HTTP ステータスコード:
302
[+]ツイート完了
HTTPステータスコード:
200
となりますが、tweetされてません。
どこか間違えがあれば教えて頂きたいです。

python

1from bs4 import BeautifulSoup 2from requests.exceptions import ConnectionError 3import requests 4import sys 5 6class TwitterTweet: 7 def __init__(self): 8 self.username = "名前" 9 self.password = "パスワード" 10 11 def tweet(self): 12 session = requests.Session() 13 14 headers = { 15 "user-agent": "Mozilla/5.0", 16 "accept":"text/html,application/xhtml+xml,application/xml;", 17 "accept-language":"ja,en-US;q=0.8,en;q=0.6", 18 "content-type":"application/x-www-form-urlencoded", 19 "origin":"https://twitter.com/", 20 "referer":"https://twitter.com/", 21 "upgrade-insecure-requests":"1" 22 } 23 payload = { 24 "session[username_or_email]":"", 25 "session[password]":"", 26 "remember_me":"1", 27 "return_to_ssl":"true", 28 "scribe_log":"", 29 "redirect_after_login":"/", 30 } 31 tweet = { 32 "authenticity_token":"", 33 "is_permalink_page":"false", 34 "page_context":"profile", 35 "place_id":"", 36 "status":"APIを使用していないツイート", 37 "tagged_users":"" 38 39 } 40 try: 41 response = session.get('https://twitter.com/',headers=headers,allow_redirects=False) 42 soup = BeautifulSoup(response.text,"lxml") 43 auth_token = soup.find(attrs={'name': 'authenticity_token'}).get('value') 44 print (auth_token) 45 except ConnectionError: 46 print ("[\*]Twitterへ接続できません") 47 sys.exit() 48 49 payload["authenticity_token"] = auth_token 50 payload["session[username_or_email]"] = self.username 51 payload["session[password]"] = self.password 52 53 try: 54 login = session.post('https://twitter.com/sessions',headers=headers,data=payload,allow_redirects=False) 55 if login.status_code ==302: 56 print ("[+] ログイン完了 HTTP ステータスコード:"), 57 print (login.status_code) 58 else: 59 print("[+] ログイン失敗 HTTP ステータスコード:"), 60 print(login.status_code) 61 except: 62 "[+]ログイン中に通信エラー" 63 64 try: 65 tweet = session.post("https://twitter.com/i/tweet/create",data=tweet,allow_redirects=True,headers=headers,cookies=login.cookies 66 ) 67 if tweet.status_code ==200: 68 print("[+]ツイート完了") 69 print("HTTPステータスコード:") 70 print(tweet.status_code) 71 else: 72 print("[+]ツイート失敗 HTTPステータスコード:") 73 print(tweet.status_code) 74 except: 75 print("ツイート中にエラー") 76if __name__ == "__main__": 77 TwiTweet = TwitterTweet() 78 TwiTweet.tweet() 79

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tell_k

2017/06/28 03:38

そもそもなぜブラウザの操作を模倣しながらツイートしたいのでしょうか? Twitter の API を利用するのが良いのではないでしょうか。 https://dev.twitter.com/docs
guest

回答2

0

自己解決

自分の誤字でした。
回答くださった皆様ありがとうございました。

投稿2017/07/04 00:50

NieR

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もうご存知かもしれませんので恐縮なのですが、

pythonのtweepyというモジュールを使うと、より簡易なコードでブラウザを介さないツイートができますよ!

pip でインストール可能で、たしかpy3系にも対応していたような気が・・・もしご希望と合致するようであればお試しくださいませ〜^^

投稿2017/06/29 04:07

k_mawa82

総合スコア234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問