アイテムが保存される前にカスタム プロパティに値を保存する Office 365 メール アプリがあります。アイテムが保存されたら、サーバー側のアプリケーションを使用してこのプロパティにアクセスしたいと思います。カスタム プロパティのドキュメントを読むと、JS API を使用して作成されたカスタム プロパティには、EWS などの他のサービスを使用してアクセスできないことがわかります。これらは MAPI プロパティではないためです。回避策はありますか? REST API を使用してこれらにアクセスすることは可能ですか?
3 に答える
実際には、それらがどこにどのような形式で保存されているかが文書化されています。[ MS-OXCEXT]仕様は詳細を提供します。基本的に、値は項目のカスタム プロパティに JSON ディクショナリとして保存されます。EWS を使用して、そのカスタム プロパティを として読み取ることができるはずですExtendedProperty
。
更新:内部で人々と話し合った後、MrPiao が示したように、これはサポートされている方法ではないことを断言する必要があります。前述のように、ストレージの設計は変更される可能性があり、現在の設計に依存している場合、アプリが壊れる可能性があります。懸念は、最終的に実行不可能になる道にあなたを導きたくないということです:)。最終目標を説明していただければ、より永続的な解決策を提案できるかもしれません。
Guid PS_PUBLIC_STRINGS = new Guid("00020329-0000-0000-C000-000000000046"); ////PS_PUBLIC_STRINGS' GUID
ExtendedPropertyDefinition extendedPropertyDefinition = new ExtendedPropertyDefinition(PS_PUBLIC_STRINGS, "cecp-{your add-in manifest id}", MapiPropertyType.String);
PropertySet psPropSet = new PropertySet() { extendedPropertyDefinition };
message.Load(psPropSet);
カスタム プロパティは、Apps for Outlook API によってのみ作成およびアクセスされることを明確に意図しています。ただし、このプロパティはどこかに保存する必要があり、それはアイテムにあります。GetItem 呼び出しを行い、項目のすべてのプロパティを列挙した場合は、カスタム プロパティにアクセスできると確信しています。
注意すべき重要なことは、これは間違いなくサポートされていないシナリオであるということです。将来的に設計が変更される可能性があり、このシナリオは壊れる可能性があります。運用環境では、メール アプリ以外のカスタム プロパティにアクセスすることは絶対にありません。