はじめに
今回はPower Automate for Desktop(PAD)でTwitter(X)で画像付きツイートの入力を自動化する方法を紹介します。
PADやAffinityPhotoの基礎知識などがある事を前提に進めます。
前提知識はこちらをご覧ください。



ちなみに、↑このAffinity Photo2の続きという立ち位置です。
Twitter(X)の自動化の対する規約と考え方
Twitter (X)のヘルプセンター的には、この記事で紹介するとPADの操作はグレーゾーンです。
行ってはならないこと
引用:X ヘルプセンター
・Xのウェブサイトを操作するスクリプトを作成するなど、API以外の方法で自動化を行う。このような方法で自動化を行った場合、アカウントが一時的にロックされるか、永久凍結されることがあります。
なので、今回紹介する処理は、もしかしたらアカウントが永久凍結される可能性があります。

先ほどの文章、よく見ると「永久凍結されることがあります」で終わってます。
“~~ことがある” = これを、必ず凍結されるとは限らないと私は解釈しました。
そして、この記事が紹介するPAD処理ですが…
これは、私たちのキーやマウスの操作などを模倣してます。
なので、 API以外の方法という点ではアウトですが…
PADで文字入力して投稿内容という処理だと、コレを使った事を証明はほぼ不可能と思います。
なので、グレーゾーンではありますが…
VRChatのイベント告知を楽にするための自動化といった内容であればあれば…おそらく、お咎めなしとおもいます。
一応、この記事では「送信」までは自動化しない形で紹介します。
そして、自動化の作り方を紹介しましたが…
Xの運営がもし見てる可能性があるので、公的にはブログに設定方法は紹介はしたが…
私は使ってない。
そう「それでも僕はやってない」と言っておきます。
たぶん、WEBサイトに迷惑をかけるような処理ではないのでOKのハズですが…。
消された時は… ここがTwitter(いーろん)の辞め時と思って諦めます。
(たぶん、こんな重箱の隅をつつく案件より、もっと消すべきアカウントがあるはず…
インプレゾンビとか、えちえち釣りスパムお姉さんアカウントとかね…)
念のため、ご利用は自己責任でお願いします。
私は「もうこれで、アカウントが終わってもいい、だからありったけを…」という気持ちでやります。
文字を入れる
文字は普通のキー入力で入ります。
詳細はこちらで解説。

↑から、この記事用に一部を抜粋したり加筆した内容をまとめていきます。
まずTwitter(X)を開く
事前に任意のブラウザ(Edge/Chrome/Fire Fox)のいずれかでTwitterにログイン。
そして、「ツイートを作成」ボタンを押します。
すると、URLが「https://twitter.com/compose/tweet」に変わります。
そしたら、まずこのURLを選択 → Ctrl+Cキーでコピー。

PADを起動し「WEBサイトを起動する」を追加。
初期 URL:にCtrl+Vキーでペースト。

あとは、生成された変数で変数名を「Twitter」などに設定。
そして保存。

これでTwitterを開く処理が完成です。
テキストを入力する
キーの送信を追加。
そして、送信するテキストに任意のテキストを打ち込み。(改行判定アリ)

キー送信先:を「ウインドウのインスタンス/バンドル」に設定。
ウインドウ インスタンス:をTwitterを開くで指定した変数に設定。

動作確認のため、この状態で実行。

これで、事前にログインしてるアカウントで文字が入力されます。

以上が、テキストを入力する処理です。
「ひらがな」入力だと文字が正しく入らない
文字は「ひらがな」入力だと正しく入力されません。

こちらのように、崩れます。

なので、下図のような「半角変換」する処理を作ります。

この処理を作る上で、厄介なポイントが…
1度でも入力先を開き「ひらがな」の状態にしたなら、別のウインドウで「半角」にしても、文字入力の際に「ひらがな」に変換されて文字が崩れる事です。

なので、 この「ひらがな」を半角に変換する処理を入れる必要があります。

こちらは「ウインドウの UI 要素をクリック」で行えます。
こちらをダブルクリックで追加。

クリックの種類を「右クリック」に設定。

そして、UI要素: → UI要素の追加 → 変換ボタンを「Ctrl+クリック」で取得。
「保存」します。

これで、半角変換の表示が出るようになります。
次はこちらを左クリックで選択するようにします。

もう1つ「ウインドウの UI 要素をクリック」を追加。
こちらは「左クリック」で登録。

UI要素を取得中に、画面を出すために右クリック。
すると3つの選択肢が出ます。
普通の右クリック操作は「右クリックを送信」で行えます。
こちらを選択。

そして「半角ボタン」をCtrl+クリックで取得。
表示エラーで赤い枠が画面の裏に出てますが… こちらで大丈夫です。

これを処理の前に入れると、半角表示になります。
以上で1つのディスプレイの場合は対処法が完成です。
2つ以上のディスプレイを使ってる場合
2つ以上ディスプレイを使ってる方は「A/あ」の表示が無い画面が出てきます。
そして、どの画面で「UI要素をクリック」の処理が入るかは…
処理が実行された際に「マウスがあった場所の画面」で決まるようです。

なので「A/あ」が無い画面で実行をクリックしたりすると、何もない所で右クリックが発生。
そして「A/あ」が無いので正しい表示にならずエラーが出て崩れます。

これの一番良いと思う対処法は「入力ダイアログを表示」させる事です。

今後のバグを減らすために、半角文字の入力をうながす一文を設定。
さらに「OK」を “クリック”してもらう一文も追加。

これで、エラーの原因になりやすい「半角表示」を消せます。


PAD側で半角で入力しても、Twitter側には反映されないので…
無意味と言えば無意味な処理ですが…
バグを引き起こす確率を減らすために入れました。
そして、この「入力ウインドウ」はメイン画面(「A/あ」があるウインドウ)に出るようです。
なので、これの「OK」をクリックすれば、メイン画面にマウスを移動させるという条件をクリアできます。

あとは「処理中はマウスを動かさない」という注意書きもあると親切。
これで、高確率で止まる事無く動きます。

PADは最後の方になると、人間の無意識で行う行動との闘いになります。
人間の行動心理を想定しプログラムに組み込む必用がでてきます。
あと複数のWEBブラウザに入力を行う場合は…
この処理をサブフローとして登録しておくと後々便利です。

上手くいかなかったときの修正や、複数個所への挿入が楽になります。

サブフローの使い方はこちらで解説。

そして、下図の様な処理ができます。

たまに画面が最大化してるとバグるので注意
たまに画面が最大化してると、右下のこのボタンが出なくなります。

なので… 「エラー発生時」の挙動を決めておくと安全です。

フローを実行し続けるようにしてください。

このエラーが発生した場合、この「2」の所で処理が止まります。
なので、処理を止めずに進める事ができます。


「ひらがな」や「全角」入力されれば止まるのですが…
ダメだった時、運が良ければそのまま上手く行くようにするための処理程度のモノと思ってください。
以上が、「ひらがな」入力だと文字が正しく入らないについての解説です。
画像を入れる
テキスト入力後、画像の所はTabキー2回押しで移動できます。

この処理を、テキスト入力後に追加。

この状態で動作確認。
すると、エクスプローラーが “表示アニメーション” が出てから表示されます。
このアニメーションの為に、まず1秒ぐらい待つ必要がある、待った方が安全という事を確認。

すると、エクスプローラーが “表示アニメーション” が出てから表示されます。
このアニメーションの為に、まず1秒ぐらい待つ必要がある、待った方が安全という事を確認。

そして、初期の選択位置はファイル名です。
ここからTabキー5回押しすると、パス選択に移動できます。

このパスを選択した状態でEnterキー。
これでパスが入力可能になります。

そしたら、これまでの①~➂の処理を追加。

Waitで1秒待って、Tabキー5回 → Returnを押すだけです。

そしたら、Windows+Eキー → 読み込ませたい画像がある場所を開きます。
パスを選択 → Ctrl+Cキーでコピー。

そして、このパスをキー入力の後にCtrl+Vでペーストして追加。

そして、Enterキー3回押すとファイル名入力の所に飛べます。
ここに入れたい画像のファイル名を入力。

下図の様な処理を追加。

これで、読み込ませたい画像を選択できます。
あとは「Enterキー」もしくは「Alt+Oキー」で開けます。

この処理を追加。

この状態で実行。

これで、テキスト+画像の入力ができます。
あとは、Ctrl+Enterキーでツイートできますが…
利用規約的にグレーなのでやらないでくださいね。


{Control}({Return})とかのキー入力を…
最後に追加したらダメですよっ!
以上が、PADで画像付きツイート+予約引用RTを自動化する方法です。

まとめ
今回は、今回はPower Automate for Desktop(PAD)でTwitter(X)で画像付きツイートの入力を自動化する方法を紹介しました。
・まず利用規約的にはグレーなので注意
・WEBサイトは「https://twitter.com/compose/tweet」を開く
・文字は普通にキー送信で入力可能
・キー送信後、Tabキー2回押し → Enterキーで画像を開くエクスプローラーが出る
・エクスプローラーでTabキー5回 → Enterキーでパス入力可能
・パスを指定後、Enterキー3回 → ファイル名入力 → Enterキーで指定した画像を開ける
また、他にもPAD関連の情報を発信してます。



ぜひ、こちらもご覧ください。
コメント