👏
【LINE】MessagingAPIのブロードキャストの使い方
概要
LINE公式アカウントを友だち追加しているユーザーにメッセージを送信する処理。
ソースコード
SampleService.java
/**
* LINEメッセージを送りたい時に使用する
* @param messasge メッセージ
* @return メッセージ送信OK:true メッセージ送信NG:false
* @throws IllegalArgumentException
* @throws IOException
*/
public Boolean sendLineMessages(String message)
throws IllegalArgumentException, IOException {
// LineApiKeyを取得
String lineApiKey = "LINEで取得したAPIキー";
ObjectMapper objMapper = new ObjectMapper();
try {
List<LineObjMessageDetails> lineObjMessageDetailsList = new ArrayList<>();
// メッセージオブジェクト生成
LineObjMessageDetails lineObjMessageDetails = new LineObjMessageDetails();
lineObjMessageDetails.setType("text");
lineObjMessageDetails.setText(message);
// メッセージオブジェクトリストを生成
lineObjMessageDetailsList.add(lineObjMessageDetails);
LineObjMessages lineObjMessages = new LineObjMessages();
lineObjMessages.setMessages(lineObjMessageDetailsList);
// オブジェクト→Json変換
String lineObjMessagesJson = objMapper.writeValueAsString(lineObjMessages);
// リクエスト先URLを設定
HttpPost httpPost = new HttpPost("https://api.line.me/v2/bot/message/broadcast");
// ヘッダー設定
httpPost.setHeader("Content-Type", "application/json");
httpPost.setHeader("Authorization", "Bearer " + lineApiKey);
// body設定
StringEntity params = new StringEntity(lineObjMessagesJson, StandardCharsets.UTF_8);
httpPost.setEntity(params);
// リクエスト実行
CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse resp = client.execute(httpPost);
int statusCode = resp.getStatusLine().getStatusCode();
if(statusCode == 200) {
return true;
} else {
return null;
}
} catch(IllegalArgumentException | IOException e) {
throw e;
}
}
LineObjMessageDetails.java
@Data
public class LineObjMessageDetails {
/** メッセージ種別 */
private String type;
/** メッセージ */
private String text;
}
LineObjMessages.java
@Data
public class LineObjMessages {
/** メッセージリスト */
private List<LineObjMessageDetails> messages;
}
git
公式サイト
Discussion