![見出し画像](https://assets.st-note.com/production/uploads/images/89791414/rectangle_large_type_2_0ca1bf96e49222bdf2cb646b2bbb62ef.png?width=800)
自分のTweetをNotionに保存したい〜試行錯誤〜
Notionに自分の"ツイート"や"いいね"を保存したい!!!
背景
大学生の頃からEvernoteを使っていた。課金ユーザーだった。
ここ2年くらいで本格的にNotionに移行し
Evernoteを使わなくなってしまった。
Evernoteを使っているときはツイエバというサービスを使って自分のツイートなどを保存していた
見返すような習慣はないがなんとなく保存したいのだ!!!
調べる
・既存のサービスがあるか調べた
同じようなサービスでNotionに保存できないかなーと調べてみた
Twinotionを見つけた!
見てみるとサブスクリプション型のサービス
個人利用で見返す予定もなかったので浪費だと思い断念。
気軽になんとなくで保存しておきたい・・・・
・Zapierで実現!??
さらに調べてみると
Zapierを使うと15minで欲しい機能が実現することを知った!
実際にやってみたらめちゃくちゃ簡単
本当にモノの数分でできる
◉ツイート保存用DB
ツイートしたら→Notion DBに保存
◉いいね保存用DB
いいねしたら→Notion DBに保存
上記の2つが簡単に作れた!!
が問題があった。
![](https://assets.st-note.com/img/1666509433278-BFbArYOrss.png?width=800)
FreePlanだと制限がある。
月に100Tasksなんてすぐに到達してしまいそう
アップデートを考えたが激高い$20
これならTwi Notionに課金する¥500/mo
![](https://assets.st-note.com/img/1666509512663-LMC76gAejT.png?width=800)
・Zapierみたいにどうにかできないか
TwitterAPIとNotionAPIを使えば、自分で作れるかもしれない
全くAPIの知識もなく、何の言語で書けばいいのかもわからない
が、なんか自分で作ってみるかーという気持ちになった
それくらいTwitter→Notion DBに保存したかったのかもしれない。
自作する
自作がいい感じになるまで試行錯誤が多く
ほぼ書き終わってみると80%くらい遠回りした・・・
って思うが全てが財産。これらがなかったら完成してなかったかも。
現状
Twitter→Notionのcodeは書けたがプログラムを走らせるたびに
追加されるので、重複処理のコードを追加しないといけない。
+トリガーも追加して、定期的に取得したい
やることはまだあれど、120-200行くらいあれば
Twitter APIデータをNotion用のパラメータに格納して取得することができる。
他の人ができるように再現性のある清書したnoteを書こうと思っているが
こう思っている時点でおそらく書かないで
これがログとして残るだろう。
だって、数日したらどうやってやったか
覚えていないのだから〜〜〜〜〜〜〜!
それでは自作の試行錯誤を記録しておこう
・プロジェクト:Twitter To Notion(TTN)
これよりプロジェクト名”TTN”としていく
(これ割と中盤過ぎに略せばいいと気がついた。Twitter To Notionってファイル名とかに使ってて長すぎて省略した)
・まず、TwitterAPIとNotion APIについて調べる
・Twitter APIを使えるようにキーを発行する
いつぞやに、自分のブログでTwitter APIを使おうと思った時があって発行はしていた。けど全然わからなくてキーを発行して終わった記憶がある。
・Notion APIを使えるようにキーを発行する
YouTubeを見ながら新しく発行
・TwitterAPIを触ってみる
TwitterのAPIは普通に手書きで使ってみる
エディター:VScode
言語:Python
(OS:macOS)
まずやったことは”ツイートを取得するコードを書く”
〜codeは割愛〜
Twitterのドキュメント(Developer Platform)
ターミナルで実行し、apiで取ってきた"text"情報をprintで出力
こんなことを繰り返してTwitterAPIで何が取れるのか試していた。
一度繋いで仕舞えば簡単。
というかプログラム書いたことのない人でもKey情報書いてauth作ってapiに繋ぐだけだから知識浅くてもやってればいける気がする。
自分はプログラム嫌い&苦手だが初見でいけた。
だってこれは定型文だから〜!!!!!!!
調べて、その通りに書いて自分のキーに書き換えればOK
なんて簡単なんだ。さすがAPI!!!!!!!
・ NotionAPIを触ってみる
Postmanで同じように書きながらやってみたらちゃんとデータベースに追加したり、更新したりできることが確認できた。
データがどんな形で送られているのかも確認できたので良き◎
Notionが提供しているドキュメント?API Referenceをみたら
わかるよなわからないような感じだがちょくちょくみてやってる
↑のReferenceで情報を入れれば、言語に合わせてコードを生成してくれる
![](https://assets.st-note.com/img/1666511665205-SiaU3MbxPl.png?width=800)
・VScodeからNotion APIを使ってみる
基本的には簡単。ただ0から書いていたから遠回りもした。
header情報など必要なものを用意してまず
データベースの情報をjsonに吐き出すプログラムを書く。
ベタ書きで引数やら動作やらはちゃめちゃだったが
綺麗にしていったら少しはマシになった。
書いたプログラム
◉ReadDatabase: DB情報
◉createPage: DBにページを追加
◉updatePage:DBにあるページを更新
status_codeを出力しながらどれも上手くいった。
パラメータはベタ書き・・・・汚い。
まあ何となく動きはわかったような気がする。
・これ何をどうすればいいんだ????
どちらもふんわり使い方はわかった
これから何をどうすればいいのか線路が途切れた。
道が続いていれば調べたりできるのだが
何をしていいのかわからなくなってしまったので
一旦手をとめて、何をすればいいのか考えた
「Twitterで持ってきた情報を、NotionのDBに入れたい」
「そのためには、、、、???、、、、????」
「Twitterの情報はcsvで出力している」
「Notionはベタ書き文字列」
(後になって気づくのだが、csvで出力する必要はなかった)
〜何やかんや考えたり、やってみたりして〜
TwitterAPIのデータをfor文で回して
その回している中でNotionに追加する処理を書けばいい。
まずは1つのデータだけでやり取りする。
ツイート本文を取得して
→格納して
→for文で1つずつ取り出す
→それをNotionに追加する処理を書く
なんか上手くいった◎
なんか無駄な処理をしていそうな気もするし
コードはぐちゃぐちゃだが上手くいった。
〜〜〜〜
など繰り返して何とかできた。
あとやることは
□ 重複しない処理
□ 定期的に動くようにトリガー設定
□ ”いいね”を取得するプログラム
→いいねは同じDBにするか、別にするか迷い中
重複しない処理の重要度と優先度が高すぎて
必要な機能が備わっていないので全然終わっていないとも言える。
まあこんなにプログラムを楽しんで書けるのは初めてだった。
仕事で書いているときは、進んでいようがいまいが
3時間でエネルギー切れになり本当に寝落ちをしまくるほどだった。
なのに気づいたら5時間。
気づいたら7時間
ゲームしている時よりも時間が過ぎるのが早かった
気づいていないだけでちゃんと脳は疲れているようで
5時間とか経って作業していると
何をしているかわからなくなる時がくる。
その時にやっと「疲れてるな」って感じる
そして、背中がめちゃくちゃ張っていて痛い。
10月21日(金)の夜から始めて
10月23日(日)までちょこちょこやっていたが、
合計20時間以上はやっているはず。
重複しない処理もどうやってやるのか調べてからやらねば。
重複処理ってこんな感じかな?
①Notion DBに入っている情報を持ってくる
②Twitterからデータを取得する
③①と②の差分をチェックするプログラムを書く
④一致しない差分を格納する
⑤④の差分をすでに書いているforで回し追加していく
どのタイミングでどうやって比較すればいいんだろうか
まあやり方は複数あるのだろうが。
次の日、なんやかんやで完成しました!↓
重複処理完成してみると簡単すぎて禿げる
MEMO↓
取得してくる他に
RTしたものだったら”RT”のタグをつけたり、user_idをオリジナルのidに書き換えたり、久しぶりに正規表現を触ったら完全に沼った。
どうにかこうにかいい感じにできた。
Twitterに
・”MEMO:〜〜〜〜” 例)MEMO:光の速度について。OOがXXXとなり〜
・”TODO〜〜〜〜〜” 例)TODO:部屋掃除
・”【読了】〜〜〜〜〜” 例)【読了】坊ちゃん
とかつけてツイートすることがあるのでこれらをタグにして
Notionでフィルターをかけて表示させてみると
めちゃくちゃ良すぎて震えた。
このタグは増やしてめちゃくちゃよかった
サポートいただいた分は、他のクリエイターさんのサポートに使わせていただこうと考えています。よろしければサポートお願いいたします◎