最近のこと2024年10月某日

Page content

2024年10月某日の最近のこと

ChatGPTにTOEICの問題つくってもらって勉強してる件

「ChatGPTに『XXをテーマにTOEICの長文問題つくって』ってお願いして作ってもらう」というTipsをTwitterで見かけたので、9月下旬以降でそれを利用して色々作ってもらっている。実際、(指示にもよるが)それっぽいのを作ってくれる。残念ながらハルシネーション(要するに「嘘」)はまだあるので完全に信用できるものではないが、少なくともReadingの問題のネタを求めるという目的に関していえば、完全に「わざわざ問題集買わなくてもいいや」という気になった。

まだ完全に使いこなせているわけではない(質の高い出力を求めてプロンプトを日々精査中なのだ)が、今の所気を付けているポイントは以下。

  • 問題のテーマには「架空の」という枕詞をつけ、かつ具体名を避ける。最初は「ストレイテナー」とか「Salesforce」とか実在するものを明示的に指定してテーマに使ってもらっていたが、これだと「わざわざ読まなくても大体わかる」みたいになりがちで、あまり問題として意味をなさないので、「架空のIT企業」とか「架空の飲食店」とかみたいに、存在しないものを仮定して問題作ってもらうように変えた。それと具体名を避けたとしてもテーマの矛先として「IT企業」を使うと、職業柄なのか、出力される長文がどれもどこか「見たことある」文章になりがちで、要は問題が簡単になることが多いので(実際TOEICでもIT関連の問題は得意なのだが)、お願いするテーマからはなるべく外すように変えた。
  • 変にネガティブなテーマを選ばない。例えば「IT企業のセキュリティ事故」とか。TOEICの世界は、過去最高売上を記録したり新規事業が大成功したり長年勤めたベテラン社員がみんなから惜しまれつつ円満退職したりと、基本的に平和と愛に溢れている。こういう「ノリ」の問題じゃないと練習にならない。ネガティブな問題もないわけではないが、救いのない話は存在しないので、そういう結末になるような(なりそうな)テーマを避けたほうが結果的に出力される問題の「質」があがる。
  • スコアレベルを明確に指示する。もとのTwitterでは「スコアレベル500点を想定してつくって」とあったが、この指示(500点レベル)だと個人的には問題が簡単になりすぎる。徐々に数値をあげていって、感覚的に「800点レベル」が一番個人的にピンときたのでこれを指示の基本にしている。これでも正直、まだ簡単な気がするんだが、実際、自身のスコア帯としては800点台だし、一旦これでいいかということにしている。
  • 「回答は書かないで」と明確に指示する。これを書かないと長文・選択問題と一緒に「回答」も一緒に出力されてしまうので、練習問題にならない。「私が後から回答を送るので採点してください」「間違っていたら解説してください」というような指示を事前に付け加え、実際にあとで選択した答えを送って採点してもらい、結果を返信してもらう。若干手間はかかるがこれが一番練習になる。

例えば以下は 「「架空の街の飲食店が最近始めた新しい取り組み」をテーマにTOEIC L&R Part 7 Multiple Passage形式の長文と選択問題を5問、スコア800点レベルを想定して作成してください。回答は書かないでください。私があとで回答を送るので、採点してください。私が間違えた問題に関しては解説してください。」 というプロンプトで出力された問題である。
1段落目
2段落目
問題1~3
問題4~5
回答採点1~3
回答採点4~5

これはPart 7用に作ってもらった長文だが、ほぼ同様のプロンプトでPart 6もいける。Part 5はもっと簡素で、 「TOEIC Part 5の空所補充問題を10問、TOEICスコア800点レベルを想定して作ってください。回答は書かないでください。私が後から回答を送るので採点してください。間違った問題に関しては解説をお願いします。」 でいける。これを日々活用している。

今気になっているところとしては、TOEIC特有の「ノリ」が薄いな、と感じるところか。これはChatGPTにどう指示したらいいのかがわからず苦戦している。例えば「新しい取り組み」をテーマにしたMP(ダブルパッセージ)問題の場合、

  • (1)「新しい取り組み」に関する社内での議論(チャットとか)
  • (2)「新しい取り組み」の宣伝広告

とか、

  • (1)「新しい取り組み」を始めますという社内告知(メールとか)
  • (2)「新しい取り組み」の実行効果を伝える新聞記事

みたいな構成がTOEIC的には定番な気がしており、要するに複数のPassageを通じて「ストーリー性」があることが通説な気がするが、この問題は

  • (1)ある店Aでの「新しい取り組み」
  • (2)ある店Bでの「新しい取り組み」

になっており、段落間に時系列やストーリー性がない。問題には段落マタギのものがあったりものするのでTOEICの問題っぽさはあるが、個人的にはあまり見たことがない構成の長文問題である。ただ、かといって「こういう構成で作れ」ということまで指示しちゃうと、長文読まなくても「流れ」がわかっちゃうので、練習問題としての質は下がってしまう。まあ、そもそも問題構成自体が明確に定義づけられているとも思ってないので、まぁこういうのもあるかもなくらいで、今の所はそこまで強く気にはしてないが、こういう「微妙な違和感」を、ChatGPTにわかってもらうにはどうすればいいのか、というのは、若干悩みの種ではある。これは英語の勉強云々とかいうよりAIプロンプトの質の話であり、どちらかというとIT技術者としての興味関心事項である。こういうところとうまく付き合える(AIをうまく扱える)IT技術者こそ、今後の時代に強くなるんだろうなあ、というのを感じている。

ご近所のごみの分別が厳しくなった件

ここ最近、ご近所のごみの分別が非常に厳格になった。具体的には、「燃えるゴミ」と「プラごみ」を一緒にいれていると、ほぼ確実に検知されて置き去りにされるようになった。何度かゴミを置き去りにされて次の収集まで持ち越さないといけない事態があり、これはヤバイと認識してそれ以降ちゃんと分別するように変えてるんだが、そうすると気づく、思った以上に「プラごみ」が多いということ。というか「燃えるゴミ(紙に該当するもの)」なんてむしろ少ない方で、生活の中の6~7割はプラごみに相当するもので構成されている。こんなに多かったんだ、プラごみって…と今更思い直す。今まですいませんでした。。

これ、まぁあまり深く考えずプラごみを燃えるゴミと同居させていた方も悪いのだが、ここ最近になっていきなり超厳密に分別されるようになり、今までなんだったんだよという気がしてならない。委託業者が変わったのかなあ??と、思って調べたところ、10月から横浜市の一部でプラごみの出し方が変わるらしく、この関係なのかもしれない、と思った。まぁ「超厳密になった」と思うようになったのは9月くらいからだけど。。

ただ、ごみの分別の度合い(厳密さ)にはどうやら地域差があるらしく、例えばさいたま市には「プラごみ」って分別自体が存在していない。シンプルでわかりやすい。昔東京住んでたときもそんなルールはなかった記憶がある。一説によれば、地域のごみ焼却場の火力による(プラごみとか関係なく燃やせるパワーの火力があれば分別は必要ないとかそういう話)らしいのだが、そうなんだろうか。そうなると前々から募らせている市政への不満の種がまた一つ増えることになる。横浜市税金高いんだしこの辺なんとかしてくれよという。そしてこういう話になってくると給食だの医療費だの堰を切ったようにほかにも色々不満が漏れ出してくるのでこの辺で理性を働かせてやめておく。

前職の知り合いが政見放送に出てた件

10月末の衆議院選挙に向けて、10月中旬ごろから、各党が政見放送をテレビで行ってたが、そのうちの一つに、具体的な政党や候補者名は言わないけど、前職で知り合いだった人が出てきて、ちょっとびっくりした。その人は当時は営業で、あまり長い間ではないが実際一時期一緒に仕事してた(提案資料の作成とか顧客訪問とかやってた)人だ。本人は俺のことなんて忘れてる気もするが。。「テレビで知り合いを見る」って経験が今までなかったので、それがまさか政見放送という形で実現するとは思ってなかった。それと、当時のその人とは仕事上の付き合いしかしていなかったので、その時点で「政治家気質」がその人にあるとは全く考えもしてなかった。(その人自体はそういう考えがあったのかもしれないが)そういうのも相まって、テレビで政見放送としてその人を見たときのインパクトはなかなか強いものがあった。「えぇっ政治家になったの?!(なるつもりだったの?!)」みたいな。

LinkedIn見ると、一緒に働いてた当時の会社のあと、転職して2社を経験した後、自身の会社を起業している。それと並行して政治家の道を志しているようだ。ちゃんとホームページやYouTubeチャンネルまである。もうここだけみてると普通の政治家にしか見えない。当時一緒に営業として仕事してたときの姿は正直かけらも見えない。同じ人でしたっけ?? ヴァレンタイン大統領が別次元から連れてきた人とかじゃないですよね?? みたいな感想である。ちなみにどうでもいいがホームページはXSERVERのようだ。当時の所属企業を含め、その後2社の会社の製品を使ってるようには思えない。まあそんなルールがあるわけじゃないし、どうでもいいんだが。。そもそもこれ自体どこか(or誰か)に外注して作ってもらってるんだろうしな。

外資ITの人って、良くも悪くも基本的にその枠から大きく外れない人が多い気がする。半分以上は別の(外資)ITに転職、というのを繰り返すジョブホッパーであり、それ以外だと起業するとか、あるいはフリーランスに転身とか。どっちにしても「民間人として働く」という枠を超えないでいる人が多い印象である、私見だが。実際俺もそうだし。一方で、日系企業だと、その企業の労組から電機連合経由で経済界・政財界に足を踏み入れ、政治家になっていく人が少なからずいる(そういう動きが一定数ある)のを知っている。実際、1社目の某日系企業では、そういう動きをした人を1~2名聞いたことがある。なので、いわゆる「サラリーマン」から政治家になるというルートを想定した場合、多くのケースは「日系企業」の出身者であり、「外資IT」であることは稀だ、と思ってた。(そういう「パイプ」が、日系企業に比べて外資ITは狭いというかそもそもないもんだと思ってた)でもこの人はそうではなくて外資ITの出身者として政治家になろうとしているようだ。それが凄いとかいうつもりはなく(そもそもよく知らん)、こういう人もいるんだなぁ~というのを知った、という、小並感な感想なのだが。

政治批判の意図では決してないが、個人的には、仕事としての「政治家」には正直まったくあこがれを持っていない(キャリアの先に政治家という選択肢は全くない)ので、営業とエンジニアで当時の職種は違えど、IT企業の出身者として、どうして政治家になろうと思ったのかっていうのは単純に少し興味はある。特にこの人は電機連合とかの後ろ盾なしで政治家になろうとしているように見え、なんというか「流されて」そういう道にいってる感じはしない。本気で「政治」やろうとしてるんだろうか。まぁそういう人が出てくるのは地域ひいては日本という国として良いことだと思うのでこれからも頑張ってほしい。支持するかどうかは別だけどね。

ちなみにこの方は小選挙区では敗れた。比例でもわずかに及ばず落選している。ただ両方とも割といいところに食い込んでおり、そのうち議員になっちゃうかもしれない。日本のためにがんばってほしいなと思います(小並感)。

ストレイテナーの更新情報をLINEで配信する機能を作った件

ストレイテナーは今年の6月くらいまで公式LINEアカウントを持っていたのだが、なくなってしまった。このため、LINEで新着情報を受け取ることができなくなった。代替としてTwitterの新着ポスト監視はしているものの、LINEほどの利便性はなく(少なからず能動的に情報確認をする必要性が出てきている)、「テナーn新着情報監視」という運用に結構致命的な問題が発生してしまっている。実際、TwitterのTLでもこのテの発言されてるフォロワーさんが数名おり、みんな考えてること同じなんだなぁ~と思った(かくいう俺も同様)。この「受動的な新着通知」っておそらく大きな需要があり、「待ってれば勝手に向こうから新着情報を流してくれる」という状況がとても重要なのだ。Managed Serviceの需要がここでも垣間見える。人間の「面倒くさい」は需要になる。

とにかくそんな状況なのだがテナー公式がやめちゃったのでオフィシャルにはもう対応する術がない。だがやろうと思えば疑似的にそれっぽいの作れるんじゃないかとふと思い立ち、技術的好奇心で 作ってみることにした。昔LINEを窓口としたチャットボットを作成したことがあるので、その時の検証過程で作ったLINEアカウントを持っており、それを活用できると思った。情報源としてはIFTTTでテナー公式のTwitterアカウントの新着ポストを監視し、それをLambdaあたりに流して中でチョメチョメ加工したうえでLINEに流す。シンプルな構成であり、セキュリティとかレート制限とか一旦度外視して動くモン作ろうとすれば半日もあれば恐らく事足りる。よしやってみよう!と思い立ったのが10月下旬。実際やってみたら多分2時間くらいでモノ自体は完成した。実際にテナーがツイートしてくれるのを待ち、概ね動作確認終了。1日で大体完成した。というわけで皆さんにも公開してみた。その名も 「ストレイテナー通知くん」 である!

ちょっと困ったのは、コール先のエンドポイント。検索してQiitaで最初に出てきたのがこの記事で、この記事だとhttps://api.line.me/v2/bot/message/pushにリクエスト投げてたので、「LINEアカウントから、そのLINEアカウントを友達登録している人たち全員にメッセージ配信する場合、このエンドポイントを使うんだ」と勘違いした。よく調べたら公式ドキュメントに記載があったんだが、このエンドポイントは1対1のメッセージ配信に用いるもので、これ使っても特定のユーザーにしかメッセージが届かない。(そのLINEアカウントを友達登録してる人全員に届くわけではない。)このエンドポイントのパラメータにtoというユーザーIDを指定するフィールドがあって、LINE developersの「ストレイテナー通知くん」の管理コンソール上に「あなたのユーザーID 」が表示されてるから、ここでいう「ユーザーID」=「『ストレイテナー通知くん』のアカウントを特定するID」だと勘違いしていた。これはマジに「俺の」個人LINEのユーザーIDのようだ。あっそうスか。。それわざわざ俺が開発してる個々のLINEアカウントのページで表示する必要なくね??わかりづらい。。で、まあ本題に戻ると、「LINEアカウントから、そのLINEアカウントを友達登録している人たち全員にメッセージ配信する」場合(こういうのは「ブロードキャストメッセージ」と呼ぶらしい)は、https://api.line.me/v2/bot/message/broadcastというエンドポイントを使う。こっちにはユーザーIDの指定なんか存在しないのでわかりやすい。はい。終了。

上で書いた通りでシンプルな構成で、実装面でも特に凝った仕様は不要であり(リツイート除くくらい)、そういう意味だと感激するほどの発見や好奇心が満たされる開発経験があったものではなかったが、まあ片手間でやるにはそれなり楽しい開発ではあった。LINEの開発もちょっと経験できたのは良かったと思う。そんなわけで現時点では特に追加の改修は考えていないが、なんか意見が出てきたら考えようかなと思っている。この機能そのものではないんだが、毎週月曜日夕方に配信している自分の漫画の宣伝ポストにこれも追加しようかなと思っており、そっちの改修は検討中。近いうち手を出すと思う。

なお、運用上の懸念がいくつかある。

  • IFTTT(Twitterの投稿を監視する仕組み)が起点になってる関係上、LINEへの配信はそれより確実に遅れる。これは仕組み上どうしようもないのだが。
  • LINEの友達追加URLの仕様がよくわからない。LINEのOfficial Accountの設定ページ開くとURLが確認できるが、このURL、ページ開くたび変わる。しかし、前のURLでも友達追加はできそう。かといって無制限に生成できるもんでもあるまい。。ショートURLみたいなもんだと思うが。期限とかないのかな?
  • Twitterの投稿を丸ごと横流ししてるので、TwitterのショートURLがそのままになっている。(https://t.co/...ってやつ)中身はただのショートURLで、要するにリダイレクトされるだけなので、これでも目的のサイトにたどり着けるし、見てる感じOGPも読み込んでるっぽいから別にいいんだけど、なんとなく気にくわない。昔テナーの公式LINEから配信された投稿はそんなURLなかったし(当たり前だが)。これ正規化(っていうの?元のURLにすること)できるのかなあ?
  • 画像に未対応。ここ見る感じだとLINE側には送ろうと思えば送れるっぽいんだが、肝心の元画像の情報が取れるか(IFTTTが送ってこれるのかどうか)がわからない。なんかできなそうな気がする。仮にIFTTTが送れるとしても、はてなブログの画像とかInstagramみたいに直リンでアクセス可能な代物にもならない気がする。ここはもう少し調査と検証が必要である。
  • LINEのMessaging APIの制限で、月に200件までしか配信できない。ということは日に平均6件程度である。LINEに投げるのはリツイートを除く本投稿のみという仕様にしたのと、テナー公式Xアカウントの投稿頻度を見る限りだとそこまで達しない気もするが、お世辞にも潤沢にあるとは言えないのでなんとも言えない。もし制限に達したら動かなくなる(んだろうけど実際どういう動きをするのか知らない。50xエラーかなんか返ってくるのかな?)。課金すれば大分余裕が出るのだが今の所課金するつもりはないので…

それと、昔のLINEの投稿を見ると、本当に「新着情報」とか「更新情報」とかだけを配信していた節がある(要するに配信メッセージをちゃんと選定・作成していた節がある)が、Twitter上への投稿は、リポストを含め、過去に投稿したのと同じ内容の重複ポストがあったりするようで、要するにTwitterとLINEで運用が微妙に異なっていたようだ。このため、「Twitterの投稿の単純な横流し」では、公式がちゃんとLINEを運営していたころと同品質のUXは得られなそうだ、ということがわかった。(まぁ当たり前ではあるが)これはアプリケーションとかシステムのつくりではなく「運用の差」の部分に該当する(と思う)ので、プログラミングとかの作り込みで対応できるとは思っていないが、なんかやろうと思えばできるのかな~?という、うっすらとした 技術的好奇心 はある。結局すべてはそこが発端なのだ。オタク仕草。ただそれ以上にここで言いたいのは、実際開発してみて初めて分かった「運営側の裏側の視点」の一部という意味で、これは面白い発見だった、ということである。TwitterとLINEで運用担当がちゃんと分かれてたのかな?どういう業務フローでSNSへの投稿をしている(していた)んだろう?というのが気になる。今回、「LINEの運用担当」だった人がなんかの理由で辞めちゃったかなんかでLINEが廃止になったんだろうか。その辺の裏事情をシステム屋として知ると結構面白かったりするんだよね。知りたい。

YouTubeを始めてみた件

見出しの通りなんだが、YouTubeを始めてみた。
https://www.youtube.com/@ossanchu/

別にYouTubeやってみたいという思いがあったわけではないし今もそうでもないんだがw、子供がYouTubeチャンネル作りたいとか言っていたので、どういったもんなのかを親として知っておいたほうがいいんじゃないか?という程度の動機で始めたのがきっかけである。なので正直、少なくとも今の時点では、別にYouTubeがんばってやっていくぜ!みたいな強い思いはない。ただまあ正直趣味ってそういう気楽な感じでよくない??

ただ、YouTubeはじめるにあたって、 「実生活において過度な労力を要するアクティビティにならない(ストレスにならない)こと」 は重視する必要があった。要するに、動画を作成するためだけにどこかに撮影しにいくとか、それ用の新しいアクティビティを始めてみるとか、そういうのはあまり考えたくなかった。YouTube単独で輝けるであろうクリエイティブなネタのアイディアがあり、それに自然と注力できるほど情熱が持てればよかったが、少なくとも今はそんな感じにはなれないし(ぶっちゃけ開発や漫画やってるほうが面白い)、であれば、「今の生活の中でやってることをそのまま動画に転用する」ようなスタンスで、動画作成そのものにあまり労力をかけないことを信条にしたいと思ってた。で、ライブは平均的に毎月最低1回は行ってるから、まぁ動画のネタにするにはいいかもな、くらいの軽い気持ちで、とりあえず今月頭のMONOEYESのライブいったときに動画をとって、それを動画として仕上げることに決めた。ただ別に「ライブレポートの専用チャンネル!」みたいな強い意志があるわけでもないので、他の動画もあげたいなとは思っている。例えばマラソン大会出てみた!とか。

単にライブ会場で撮った動画をつなぎ合わせるだけじゃ面白くないし、どうせだからなんかちょっとエンターテイメント性をいれるかと思って考えたのが、にゃんちゅうの声真似だった。これは俺が唯一できるといっていいモノマネなのだがw、自身の身バレを防ぐ目的と(大した効果ないと思うけど)、なんとなく「にゃんちゅうが絶対喋らないようなこと喋ってみるのは面白いかもな」くらいの軽い気持ちによるもので、それ以上の深い意味はない。セルの絵をもとににゃんちゅう化させたネタ絵を数枚描いたのもその関連で、しかし上に書いた通りでここに労力かけるつもりはなかったので、絵は適当である(1枚20分くらいしかかかってないと思う。w)描いてみたらこれはこれで面白かったのでw、他のネタ絵もいくつか描くかもしれない。

なお、「これ専用に労力をかけないようにする」という目的はあり、それに則ってやってみたが、いかんせん動画作成は初めてだったので、なんだかんだその点での苦労はあった。撮った動画の顔の部分の映像が出ないようにモザイク加工するのに手間取ったり、声入れるのに苦労したり(声真似が大変、という意味じゃなく録音ツールの使い方の話)、そもそもYouTubeチャンネル作るのが初めて四苦八苦したり、とか、まぁ色々である。今回でそこそこ慣れはしたので、次回以降はもう少しスムーズにいくとは思う。やってみてわかったが、これは結構面白かった。まあすぐ飽きる可能性もあるのでなんとも言えないのだが、飽きるまではチマチマと進めていこうかなと思う。

そんなわけでとりあえずMONOEYESのライブにいってみたって動画をあげてみた。今後もライブいってみた動画をあげていこうかなと思っている。

Threads APIの実行に成功した件

Threads APIの実行に成功した。正直最初はなんだかよくわからんことが多くて「まぁ別に無理に使わなくてもいいか…」って感じだったんだが、こちらのQiitaを見つけて読んでみたところ、「あっこれ同じ感じでやればなんかできそうかも?」と思って試してみて、そしたらできた。

感覚としてはTwitterのv2のAPIをOauth使って叩く流れと近い。簡単に言えば、リダイレクトしてもらってAuthorization CodeもらってAccess Token発行する、という流れだ。ThreadsもOauthトークン発行してAPI叩くんだからまあ全体的なフローとしては似たような感じになるのはそうなんだろうが、同じようなことをTwitterで一度経験しておいたのが役に立った、とは思う。とはいってもTwitterとは細かい違いはあって、例えば

  • Twitterのほうは、リダイレクト先をhttp://localhostにできたんだが、つまりわざわざどっかに乗っけなくてもトークンもらうときだけローカルでWebサーバーたてとけば事足りたんだが、Threadsはそれを許可してくれない(リダイレクト先のURLの入力欄にhttpsで始まっているかどうかのチェックがかかっている)ので、リダイレクト先のWebアプリをどこかにホスティングしておく必要がある。
  • Twitterと違って、Access Tokenに「Short-Lived(短命)」と「Long-Lived(長期)」の2種類がある。最初に取得できるほうは「短命」で、わずか1時間しか持たない。(ってここに書いてある、By default, Threads user access tokens are short-lived and are valid for one hour. However, short-lived tokens can be exchanged for long-lived tokens.)まぁTwitterのほうも放っておけば2時間でexpireするので似たようなものだが(*)、Twitterの場合はそのアクセストークンを渡してそのままリフレッシュできるのに対し、Threadsの場合はリフレッシュできるのは「長期」のほうだけで、「短命」は対応していないようである(っていう風に読み取った、このドキュメントの記載 The valid (unexpired) long-lived Threads user access token that you want to refresh. を見るに)なので実質的に「短命」を「長期」に変換する必要がある。この部分がTwitterに対しては追加のフローになるだろう。

というのが面倒くさいのでTwitterと同様サンプルのWebアプリを作った。実際にこれでLong-Lived Access Tokenを取得してAPIの実行に成功している。ホスティング先はわれらがHeroku。wまぁあんまり使いたいって人いないだろうけどもしいたら使ってください。

ちなみに、APIによる投稿の流れもTwitterとは少し違っていて、

  • (1)投稿用のIDを取得する
  • (2)上記(1)のIDをpublishする

という2段階を踏んで初めて「投稿完了」になるようだ。これはテキストだけの単独ポストでも同様になる(画像とか動画付きの投稿かどうかによらず、という意味)。/2/tweetsに一発POSTすれば投稿できるTwitter API(v2)と比べると少し手間が増えている。大した手間でもないけど。一度準備段階を踏むという点では、昔のTwitter v1.1の画像付きツイートを投稿する流れと似ている。あれも一度画像をアップロードし終わってから本投稿に入る、という流れだった。

それと、画像に関しては、ドキュメントを見る限りでは画像のURLを引数で渡すようなので、つまり画像を投稿するにあたって画像自体をどこかPublicアクセス可能な場所に配置しておく必要がある。ちなみに動画も同様。Twitterのv1.1は画像のバイナリデータをそのまま直接送信できたので、この点で少し違いがある。若干使い方を選びそうな気がする。個人的には今の所画像付きの投稿をThreadsに行うことは考えてないので今は別に気にしてないが、本格的に使うとなったら何か考えなければならないことが出てきそうではある。

まだリフレッシュは試していないが、Love-Livedは60日期間があるらしいので試すまで余裕がある。期間内にそのうち試してみようと思う。それが確認できたら、定期的にリフレッシュして最新のAccess Tokenを取得・保存しておく仕組みも必要なので、LambdaとDynamoDB使ってそのうち作ろうと思う。色々作るものがあって大変だぜ。(楽しい!w)

ともあれ、Threads APIが使えるようになったので、ブログの更新通知とか、毎週月曜日18時に投稿してる宣伝ポストとかも、Threadsに流すように改造していこうと思う。この辺踏まえてそのうちちゃんとした単独の記事にまとめたい。

(*) 余談だが、Twitter APIのドキュメント見ると、「(Access Tokenは)2時間で切れる」っていう記述がなくなっている。むしろ「明示的に期限が切れることはない」って書いてある。→https://developer.x.com/en/docs/authentication/faq#:~:text=How%20long%20does%20an%20access,if%20Twitter%20suspends%20an%20application. Access tokens are not explicitly expired. An access token will be invalidated if a user explicitly revokes an application in the their Twitter account settings, or if Twitter suspends an application. If an application is suspended, there will be a note in the Twitter app dashboard stating that it has been suspended. え~そうなの??2時間で切れるっていうから今律儀に10分ごとにリフレッシュするLambda関数動かしてるんだけどそれ不要ってこと??これいつそうなったんだろ??ていうかマジでそうなのか??という検証が必要だな。。う~むこの辺はよくわからん。。