私はこの問題を数時間苦労していました。グラフAPIは本当にあいまいです。とにかく私はこのように解決しました。これはPHPですが、違いはなく、概念も同じであると確信しています。
手順1:createReply
APIを使用して下書きを作成します。リクエストにはボディがないことに注意してください。あなたはコンテンツや添付ファイルなしで簡単なドラフトを作成するだけです。
$graph = new Graph();
$graph->setAccessToken($token);
try {
$draftedMessage = $graph->createRequest("POST", "/me/messages/{$id}/createReply")
->setReturnType(Model\Message::class)
->execute();
ステップ2:次に、返信コンテンツや添付ファイルを使用して、作成した電子メールを更新する必要があります。
$body = $draftedMessage->getBody()->getContent();
$updatedBodyContent = $comment . '\n' . $body;
$itemBody = new Model\ItemBody();
$contentType = new Model\BodyType(Model\BodyType::HTML);
$itemBody->setContentType($contentType);
$itemBody->setContent($updatedBodyContent);
$draftedMessage->setBody($itemBody);
$updatedMessage = $graph->createRequest("PATCH", "/me/messages/{$draftedMessage->getId()}")
->attachBody($draftedMessage)
->execute();
} catch(RequestException $e){
return response()->json(['status' => false, 'message' => $e->getMessage()]);
}
同時にドラフトを作成するときにコンテンツを追加する方法はありません。おそらく、ユーザー側の遅延を避けるためにasyncを呼び出すべきでしょう。何か問題があった場合は教えてください。
私はまた、createReplyAllとcreateForwardが、コメントと受信者の両方に対して、指定されたパラメータに注意を払わないことにも気付きました。ベータAPIは正しく動作しますが、プロダクションAPIは正しく動作していないようです。 –
ありがとうございます。同じことを経験した。ベータ版は動作しますが、v1.0では動作しません。 –