0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LINEでお正月に挨拶文章を一斉に送ってみた

Posted at

はじめに

いつもQiita見る専なので、たまには記事を書こうと思ってこの記事をかきました。
お正月の季節なのでせっかくなら、LINEでの挨拶を自動化してみました。
記事の投稿があまり慣れていないので、ご容赦ください。

どんなものをつくったの?

A. LINEで一斉送信できるプログラム

使用技術

  • AppleScript
  • ChatGPT ←ほぼ彼ににつくってもらった

コード

#!/usr/bin/osascript

-- 送信するメッセージ
set message1 to "あけましておめでとうございます。hogehogehogeでhogehogehogeですね"

-- 送信先のユーザー名(LINEのグループや個別のチャットに合わせて適切に修正)
set contacts to {"aaa", "bbb", "ccc"} -- 例: "User1"の部分をLINEの相手に合わせて変更

tell application "LINE"
	activate
	delay 0.5
end tell

tell application "System Events"
	repeat with contact in contacts
		-- クリップボードに名前をコピー
		set the clipboard to contact
		
		-- LINEウィンドウをアクティブにして検索バーを表示
		tell application "System Events"
			keystroke "f" using command down -- Cmd + f で検索バーを開く
			delay 0.5
			keystroke "v" using command down -- ここで相手の名前を入力(貼り付け)
			delay 0.5
			keystroke return -- 相手の名前が表示されるので選択
			delay 0.5
		end tell
		
		-- 下矢印キーを2回押して検索結果を選択
		tell application "System Events"
			keystroke (key code 125) -- 下矢印キー(key code 125)
			delay 1
			keystroke (key code 125) -- 下矢印キーをもう一度
			delay 1
		end tell
		
		-- Tabキーを押して次の入力フィールド(または選択肢)に移動
		tell application "System Events"
			keystroke (key code 48) -- Tabキー(key code 48)
			delay 1
		end tell
		
		-- メッセージ1を入力して送信
		set the clipboard to message1
		tell application "System Events"
			keystroke "v" using command down -- メッセージ1を貼り付け
			delay 0.5 -- メッセージが入力されたことを待つ
			keystroke return -- メッセージ送信
			delay 0.5 -- 送信後の遅延
		end tell
		
		-- Escapeキーを押してキャンセル(もし必要な場合)
		tell application "System Events"
			keystroke (key code 53) -- Escapeキー(key code 53)
			delay 0.5
		end tell
	end repeat
end tell

苦労したところ

文字入力するkeystrokeが日本語では直接入力できないという問題がありました。

例えば以下のコード

keystroke "こんにちは"

本来ならこんにちはという結果が欲しいのですが、あああああと出力してしまいました。

解決策

まず変数に文字入力したい値を記入します

set message1 to "あけましておめでとうございます。hogehogehogeでhogehogehogeですね"

次にメッセージをクリップボードにコピーします

set the clipboard to message1

そして最後にペースをしてあげることにより、日本語が入力が可能になります

keystroke "v" using command down

まじでなんでだよ!!

反省点

  1. 今回LINEの友達104名に送るにあたり、一人ずつLINEのアカウント名を確認し、変数に記入してたので次回やる際には、自動でアカウント名を取得したい。
  2. 動作時間が長い
    ほぼゴリ押しで送信しているので、検索の時間の猶予なども与えるにあたり、delayを入れているので、そこの時間を調整したら短くなると思います。
    ちなみに今回の実行時間は役12分ぐらいかかったので、もっと短くする方法をコメントで教えてください

最後に

いかがだったでしょうか、ぜひ来年のLINEでのお正月挨拶文章は、AppleScriptを使って自動化してみてはどうでしょうか。

参考

妻の誕生日にLINEでサプライズメッセージを送る
【AppleScript】keystroke で日本語が打てない時の対処法

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?