仕事と家事で毎日バタバタ…

ずぼら主婦さゆです。

 

単身赴任中の夫、わたし、3歳娘の

3人家族

 

 

このブログでは

 

なるべくラクに家計をやりくりする方法

節約しつつプチ贅沢を楽しむコツ

夢のマイホーム実現に向けた情報

 

を発信していきます!

 

 

いいねやコメントもらえると

嬉しいですおねがい

 

 

 

ご訪問ありがとうございます。

 

 

 

 

こんにちは!さゆです。

 

いつも家事と育児でバタバタの毎日ですが

今日はとっても嬉しいことがありました😊


なんと!PC音痴のわたしでも

X(旧Twitter)の投稿システムを作ることができたんです🎉


 「え、そんなの無理でしょ💦」


って思ったあなた

わたしも最初はそう思ってました😅



でも実際にやってみたら…


本当にできちゃいました✨ 

今回はその感動の瞬間をお伝えします😆

 

 

これまでのドタバタ劇をおさらい📚


エラーとの戦いが続いていました💦 


専門用語もよくわからないし

「もうダメかも😭」

って何度も思いました😅



でも娘のお昼寝中にChatGPTに聞きながら

コツコツ続けてついに原因が判明したんです✨ 


.envファイル(設定ファイルのこと)に

同じ項目が2回書いてあって

それが悪さをしてたんです💦


「こんな単純なミス?!」


って拍子抜けしちゃいました😅 


でもこれ

きっと初心者あるあるですよね✨

 

 


夜中のこっそり作業で大発見🎯


娘が寝静まった夜中に

ChatGPTに教わりながらコツコツ修正作業😊


夫からLineもそっちのけで

「また何かやってるの?」

って言われちゃいましたが💦


新しい認証方式

(OAuth 1.0aっていう難しい名前のやつ😅)

に変更する必要があることが判明しました✨ 



「また新しいこと覚えるの〜💦」


って思ったけど

ChatGPTが優しく教えてくれるので安心です😊



この時点で時刻は夜中の1時過ぎ💦 


「明日の朝、起きられるかな😅」


なんて思いながらも

成功への期待でわくわくが止まりませんでした✨



ライブラリのインストール

まずはChatGPTに教わった通り

新しいライブラリをインストールします😊 

コマンドプロンプトで以下を実行しました✨

 

pip install requests requests-oauthlib


修正したPythonコード

ChatGPTがくれた新しいコードに変更しました😊
OAuth 1.0a認証を使う形になっています✨

 

import os
from dotenv import load_dotenv
import requests
from requests_oauthlib import OAuth1

load_dotenv()

# 環境変数から認証情報を読み込む
API_KEY = os.getenv("API_KEY")
API_SECRET = os.getenv("API_SECRET")
ACCESS_TOKEN = os.getenv("ACCESS_TOKEN")
ACCESS_TOKEN_SECRET = os.getenv("ACCESS_TOKEN_SECRET")

# OAuth 1.0a の認証セットアップ
auth = OAuth1(API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

# 日本語含むツイート内容を.txtから読み込む
with open("tweet.txt", "r", encoding="utf-8") as f:
    tweet_text = f.read()

data = {
    "text": tweet_text
}

# ツイートを送信
response = requests.post("https://api.twitter.com/2/tweets", json=data, auth=auth)

if response.status_code == 201:
    print("✅ 投稿成功!")
    print(response.json())
else:
    print("❌ 投稿失敗…")
    print(response.status_code)
    print(response.text)

 

前回との大きな違いは

headersの代わりにauth=OAuth1(...)を

使っているところです😅 

 

これが重要なポイントでした✨

 

 

投稿文の準備📝

 

tweet.txtファイルには

以前から考えていた初回投稿の内容を保存しました😊

 

この投稿が成功すれば

わたしのX自動投稿システムの

記念すべき第1回投稿になります✨

 

 

いよいよ実行の瞬間💓

 


朝の家事を済ませて

娘がEテレに夢中になってる隙に再挑戦😊

コーヒー片手にドキドキしながら

ボタンをポチッと押しました✨

 

PS C:\Users\sayu\Documents\XAutoPost> & 

C:/Users/sayu/AppData/Local/Programs/Python/Python313/python.exe 

c:/Users/sayu/Documents/XAutoPost/post_tweet.py

 

そして結果は…😆

 

 

ついに成功の瞬間🎊

 

✅ 投稿成功!
{'data': {'id': '19440785733...', 'text': '「誰かの役に立つ情報を発信せよ」\n「想いを乱射するな」\n\nそう言われたことがある。\n\nけれど\n自分の中に生まれた違和感を\n看過せずに問いかけることにも\n意味があるのではないだろうか。\n\nここは、それを静かに問うところ。\n\n#問いの実験室', 'edit_history_tweet_ids': ['19440785733...']}}


って画面に出たんです🎉



さゆ:

「きたー!!!」



って声に出しちゃって

娘に「ママどうしたの?」って言われました😅



これまでの苦労が報われた瞬間でした💦

 

 

ChatGPT:

「やったーーーーーー!!!🎉🎉🎉
日本語投稿、大・成・功👏✨✨✨
ほんとうにおめでとうございます!!!」

 

 

いま、できてること🌟

 

この成功でついに
以下のことができるようになりました😊

✅ PythonスクリプトでX(旧Twitter)に投稿できる 
✅ 日本語&改行ありの投稿もOK 
✅ 投稿本文を .txt から読み込み ←これが未来の自動化の基盤です✨
 
特に3つ目の「.txtから読み込み」
というのが重要なポイントです😊 
 
これができることで
投稿内容を簡単に変更できるようになりました💦

 

 

🔜 次に進むステップ(いよいよここ!)

 

🟩 ステップ①:Googleスプレッドシートから投稿文を読み込む
→ gspread や pandas を使って、スプレッドシートの行を1つずつ読み込む
→ 1行目の投稿内容を tweet_text に渡して投稿

🟩 ステップ②:投稿済みの行に「投稿済み✅」など記録
→ 投稿した後、スプレッドシートのその行に「Done」や日時を自動で書き込むようにする

🟩 ステップ③:1日3回、予約投稿を自動で回す
→ 最終的には schedule モジュール or Windowsのタスクスケジューラで、1日3回投稿するように
 
🟩 ステップ④:投稿失敗時のログ化・リトライ
→ try-except で丁寧に
 
🟩 ステップ⑤:GUI化や他人との共有
→ Streamlit or FastAPI など
 
 
ChatGPT:
「さぁ…ついにここまで来ましたね🕊✨
この先は『運用』に突入していくので、
一緒にテンプレートや仕組みを整えていきましょう😊
次に『スプレッドシートから自動で投稿文を読み込む』ステップに進んでもいい?💦
それとも、いったん整理したいことあるかな?😅」
 
 
わたしの答えは即答でした✨
 
さゆ:
「もちろん『スプレッドシートから自動で投稿文を読み込む』ステップに行きたい」
 
 
ChatGPT:
「いいね、さゆさん🎉
ここまで順調にクリアしてきたのが本当に素晴らしいです!

次はいよいよ
『Googleスプレッドシートから投稿文を読み込んで自動投稿』
のステップですね。」
 
 

今回のまとめ

 

ついにPythonコードを使った
日本語での投稿に成功しました🎉 
 
長い道のりでしたが
本当にうれしかったです✨
 
 
成功のポイント:
✅ OAuth 1.0a認証の導入😊
✅ requests-oauthlibライブラリの使用✨
✅ .envファイルの重複エラー解決が効いていた💦
✅ tweet.txtファイルからの読み込み成功😅


できるようになったこと:
✅ 日本語&改行ありの投稿が可能✨
✅ .txtファイルから投稿内容を読み込める😊
✅ 自動投稿システムの基盤が完成💦

 

次回予告🚀

 

次回からは
Googleスプレッドシートとの連携に挑戦します😅 
 
これができれば
投稿内容の管理がぐっと楽になります✨
 
 

🛍️長時間作業のお供

 

今回も長時間パソコンと向き合っていて

目の疲れがひどかったです💦


特にエラーメッセージを何度も見ていると

集中力が途切れがちに😅


そんな時は、温かいお茶を飲んで一息つくのが一番ですね☕

 

 

 

\集中力UPや気分転換に!/

2種から選べる 煎 レギュラーコーヒー プレミアムドリップコーヒー(10g*20袋)【煎(せん)】[ドリップコーヒー]

右矢印プレミアムドリップコーヒー(10g*20袋)

 

 

\夜間の作業が多い方に!/

【2年保証】Lepro ledデスクライト ACアダプター付き 目に優しい JIS規格 AA形相当 卓上ライト電気スタンド学習用 テーブルライト 学習机 ライト 勉強机 コンセント式 ledライト 卓上スタンド おしゃれテレワーク読書灯学生 学習ライト

右矢印目に優しい LEDデスクライト

 

 

\長時間のPC作業で目が疲れる方に!/

【眼科で採用◎圧倒的レビュー数3,000件!!】 JIS検査済 ブルーライトカットメガネ メガネ ブルーライトカット 紫外線カット 度なし 伊達メガネ PCメガネ 軽量 パソコン おしゃれ メンズ レディース クリアレンズ mujina0008

右矢印ブルーライトカット眼鏡

 

長時間のパソコン作業には必須アイテム👓 

わたしのように画面を見続ける作業をする時に

目の疲れを軽減してくれます✨ 

デザインもおしゃれで

普段使いもできるのが嬉しいポイント🎶

 

 

 

\ChatGPT活用本/

 

わたしがChatGPTとの付き合い方を

学んだ入門書です📚
初心者でも分かりやすく

実践的な使い方が満載!

 

💡 こんなあなたにおすすめ 

・ChatGPTを初めて使う方

・効果的な質問の仕方を知りたい方 

・日常生活で活用したい方

 

 

\Logicool ワイヤレスマウス M575S トラックボール/

 

長時間のPC作業で手首が疲れるあなたに!
ChatGPTとのやり取りで
作業時間が増えたわたしには必需品です✨

 

💡 こんなあなたにおすすめ
・長時間のPC作業をする方
・手首の疲れを軽減したい方
・作業効率を上げたい方

 

 

山善 昇降式デスク
\スタンディングデスク 幅120cm/

 

立ったり座ったり、集中力を保ちながら学習!
新しいことを覚える時の気分転換に最適🏠

 

💡 こんなあなたにおすすめ
・集中力を持続させたい方
・健康的に作業したい方
・学習環境を整えたい方

 

 

 

楽天ROOMでは

「買ってよかったものだけを載せています。

 

 

 

 

最後まで読んでくださって

ありがとうございます✨

 

 


フォローや「いいね」もらえると

すっごく励みになります♪

フォローしてね



それではまたバイバイ

 

 

 

にほんブログ村 主婦日記ブログ パート主婦へ
にほんブログ村

 

人気ブログランキング
人気ブログランキング