3
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?

More than 3 years have passed since last update.

LINEWORKSAdvent Calendar 2020

Day 17

SalesforceからLineworksに通知を送ろうと思った話(構築編)

Last updated at Posted at 2020-12-16

SalesforceからLineworksに通知を送信する

Salesforceで承認プロセスを作るにあたり、その通知をメールだけではなく、Lineworksにも送りたいと思ったので、その時に参考にした情報を記載していきます。

設計概要

すごくざっくりした概要図ですが、こんな感じで構築することにしました。
SFtoLW通知.jpg

進め方

ネットで調べたら以前TerakoyaforceでLineworks連携の紹介をしていたのでこちらの記事を参考にして構築しました。
https://terakoyaforce.connpass.com/event/106960/

2年前の記事なので手順書通り進めるといくつかうまくいかないケースに当たります。
そこでSalesforceでデバッグログを有効にして、出力されたログを見ながら修正していきます。
LineworksのAPIリファレンスを参考にしながらトークBotの登録から、メッセージ送信のRequest URLや、Requestのパラメータ、Responseの処理を修正していきます。

その過程で今後の機能改修に必要な知識も入ってくるので直し切ってしまうことをおススメします。

バグだけ潰せばいいなら、以下を修正すればうまくいきます。

LW_Utils.cls
//19行目
//public static String LW_REGIST_BOT_TENANT_URI = 'https://apis.worksmobile.com/'+ API_ID+'/message/registerBot/v4';
public static String LW_REGIST_BOT_TENANT_URI = 'https://apis.worksmobile.com/r/'+ API_ID+'/message/v1/bot';
LW_BotEntryController.cls
//30行目
//bots.put('managerList', manageUser);
bots.put('managers', manageUser); 

//45行目
//if( (Integer)botRes.getStatusCode() != 200 ){
if( (Integer)botRes.getStatusCode() != 200 ){

実装が終わると、SalesforceのChatterにメンション付きで投稿されるとこんな感じでLineworksにも通知がされます。
image.png
※今回は承認プロセスから、Chatter投稿しているので、その承認リンクが送信されるように別途設定しています。

実装後フロー図

最終的にはこんな感じの動作になりました。
例外処理は実際はもっと多いですが全体像だけ。
描画1.png

最後に

この話にはオチがあります…
ぜひこちらの記事もご覧ください!
https://note.com/iitsuki/n/n616afab7556b

3
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
3
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?