1

から呼び出されるとExchange EWSでUpdateItemでアクセスが拒否されました。Office JavaScript APIを使用してOutlookアドインを開発し、メールメッセージのカテゴリを更新する必要があります。Outlook JavaScript API(office.js)

アドイントークンを使用して、取引所EWSでUpdateItem呼び出そうと - それはで500

参照要求と応答で失敗します。http://pastebin.com/55x2d2Ht

  1. アプリのマニフェストの権限あるReadWriteMailbox(最高)
  2. このアプリケーションをOWA/manageappsで選択すると、「この追加をクリックすると、メールボックスの電子メールの読み取り、作成、更新」
  3. mailbox.getCalから両方のトークンを試します。 lbackTokenAsyncとmakeEwsRequestAsyncを使用します。
  4. EWS GetItemおよびCreateItem操作が成功しました - 失敗したUpdateItemのみです
  5. UpdateItemへの応答:500この呼び出し元またはアプリケーションは、要求されたWebメソッドを使用できません。同じ場合
  6. それは500(およびない403)であるという事実がUpdateItem操作がアドインアプリのためにブロックされていることを意味するものであり、完全に
  7. (getCallbackTokenAsyncから)JWTトークンが
  8. キー「SCP」を持っていません。 UpdateItem XML Soapパケットは、Azureに登録されているテストOAuthアプリから、別のトークンと共に送信されます。アクセス権はExchangeへの読み取り/書き込み - >成功します。このアプリケーションjwtトークンに "scp": "full_access_as_user Mail.Read Mail.ReadWrite Mail.Send"
  9. アドイントークンを持つ他の交換ユーザーとの試行も失敗します。
  10. Office AddIn docsは、EWS UpdateItem操作がaddinのコンテキストでサポートされていることを示しています。 Office Dev Center
  11. を参照してください。要約:Addin OAuthトークンを持つEws UpdateItemだけが失敗します。他の操作は成功し、他のトークン(または基本認証)を使用したUpdateItemのポストも成功します。

答えて

2

makeEwsRequestAsyncでUpdateItemを使用できるようにする必要があります。 getCallbackTokenAsyncは、GetItemGetAttachmentにしか使用できない読み取り専用トークンを返すため、使用できません。 makeEwsRequestAsyncとの要求を行うときに、あなたのXMLのSOAPリクエストは、(makeEwsRequest内のデータパラメータは、次のようになります。ご注文の呼び出しmakeEwsRequestAsyncにコールバック・トークンを渡す必要はありません

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
       xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> 
    <soap:Body> 
    <UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"> 
     <ItemChanges> 
     <t:ItemChange> 
      <t:ItemId Id = "AAMkAGI3NDEzZjRhLWU3ZjktNGViNy04MTI1LWFhOWRiZDRlY2QwNABGAAAAAADBaXFYA4KPQqsQBpmZF2+2BwAa6KJzOcvaRKcc5UfLbF5tAAAA4fK1AAACk4HLLuxASqDPNieBkIv8AANIKlICAAA=" ChangeKey="CQAAABYAAAACk4HLLuxASqDPNieBkIv8AANIb3mG"/> 
      <t:Updates> 
      <t:SetItemField> 
       <t:FieldURI FieldURI = "item:Categories" /> 
       <t:Message> 
       <t:Categories> 
        <t:String>Workout</t:String> 
       </t:Categories> 
       </t:Message> 
      </t:SetItemField> 
      </t:Updates> 
     </t:ItemChange> 
     </ItemChanges> 
    </UpdateItem> 
    </soap:Body> 
</soap:Envelope> 

+0

をそれは完璧に動作します。しかし私が受信トレイに入っているときはすぐにカスタムカテゴリが適用され、すぐに見ることができますが、私がsentitemsフォルダに入っているときには、表示されません、senditemフォルダのオフラインキャッシュをクリアして、 。 – Hitendra

+0

私がこれをすると、何か他のものをクリックするまでカテゴリーが表示されます。メールアイテムに戻ると、「これは最新バージョンです。あなたは別のコピーを変更しました。他のバージョンを見るにはここをクリックしてください」というメッセージが表示されます。これをクリックすると、追加したカテゴリのバージョンが表示されます。 – ryan

関連する問題