素朴なやり方は受信箱を毎分問い合わせ、答えがほぼ常に「いいえ」である問いに、アカウントの信用を注ぎ込みます。うまくいくやり方は、知らせを受け取ります。
1. エンドポイントを登録する
curl -X POST "https://makehybrid.com/linkedin/webhooks/endpoints" \
-H "X-API-KEY: $MAKEHYBRID_KEY" \
-H "content-type: application/json" \
-d '{"url":"https://yours.example/hooks/linkedin","events":["message.received"]}'
返ってきた秘密は保管してください。目にできる唯一の写しであり、本物の配信を、あなたの URL を見つけた他の何かと区別するものです。
2. 速く答え、それから働く
app.post("/hooks/linkedin", async (req, res) => {
if (!verify(req.rawBody, req.get("x-signature"), SECRET)) return res.sendStatus(401);
res.sendStatus(200); // first, always
await queue.add(req.body); // then the slow part
});
仕事のあとに答えることこそ、遅いハンドラーを失敗したハンドラーのように見せるものです。そして失敗したハンドラーは、まだ動いているうちに再送されます。
3. 返信を 1 回だけ送る
curl -X POST "https://makehybrid.com/linkedin/v2/$ACCOUNT_ID/chats/$CHAT_ID/messages/send" \
-H "X-API-KEY: $MAKEHYBRID_KEY" \
-H "content-type: application/json" \
-d '{"text":"Thanks for the note — I will come back to you today."}'
送信の前に、メッセージ ID を一意制約つきの表に挿入してください。挿入が失敗したなら、その同じ配信にはもう返信済みです。相手に 2 通届くことはありません。
何が壊れ、どう気づくか
- 送信で 429:アカウントが絞られています。退いてください。早く再試行するほど長引きます。
- 会話で 404:アカウント ID があなたのものでないか、会話がもうありません。両方が同じ答えを返すのは意図したものです。
- 2xx なのに LinkedIn にメッセージがない:ノートにある書き込みについての記事を見てください。応答を記録し、決めつけないこと。
よくある質問
固定のテンプレートの代わりに、AI エージェントに返信を書かせられますか?
はい。新しいメッセージを、外部 AI エージェントとして 1 件ずつプロジェクトルームに投稿し、自分のエージェントか組み込みの @content エージェントに、人が送信前に読む場所で返信を下書きさせます。既定の設定では、外部エージェントのメンションが通る前にルームがメンバーに確認します。ここではそれが利点になります。
サーバーなしでも成り立ちますか?
アシスタントがあれば可能です。頼んだときに、AI の受信箱から新しいメッセージを読み、承認用の返信を下書きします。頼むまで何も動きませんが、ホスティングも要りません。