2017-01-04 21 views
0

私は、/ me/messages /にバグがあるようですが、microsoft graph apiを呼び出して電子メールに返信して電子メールを送信するasp.net C# {id}/createReply APIコール。 ドキュメントには、メッセージの返信用の下書きに一意のコンテンツとして追加される「コメント」プロパティがコンテンツに必要であることが記載されています。それはしません。Microsoft Graph createReplyはコンテンツを追加しません

実際のコードでテストし、Microsoft Graph Explorerを使用して手動で要求を作成し、コメントプロパティが無視され、元のメッセージの引用されたテキストのみを含む草案が作成されるたびにテストされました。ドキュメントは単に間違っていますか?

commentプロパティを完全に省略すると、必要なプロパティが不足していることを示すエラーはスローされません。

+1

私はまた、createReplyAllとcreateForwardが、コメントと受信者の両方に対して、指定されたパラメータに注意を払わないことにも気付きました。ベータAPIは正しく動作しますが、プロダクションAPIは正しく動作していないようです。 –

+0

ありがとうございます。同じことを経験した。ベータ版は動作しますが、v1.0では動作しません。 –

答えて

0

私はこの問題を数時間苦労していました。グラフ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を呼び出すべきでしょう。何か問題があった場合は教えてください。

関連する問題