2017-07-21 4 views
2

J'ai suivi ce document https://docs.microsoft.com/en-us/outlook/add-ins/use-rest-api, et recevoir une erreur sur appel reste api:Outllok ajouter dans l'appel REST: RequestBroker-ParseUri - "Ressource non trouvée pour le segment 'messages'."

{"error":{"code":"RequestBroker-ParseUri","message":"Resource not found for the segment 'messages'."}} 

ID de jeton et le message ont des valeurs correctes, le code est de docs, la seule chose que j'ai remplacer est Office.context.mailbox.restUrl par défaut https://outlook.office.com depuis premier est vide pour moi (pourquoi?)

En fait, le code:

function getItemRestId() { 
    // Currently the only Outlook Mobile version that supports add-ins 
    // is Outlook for iOS. 
    if (Office.context.mailbox.diagnostics.hostName === 'OutlookIOS') { 
     // itemId is already REST-formatted 
     return Office.context.mailbox.item.itemId; 
    } else { 
     // Convert to an item ID for API v2.0 
     return Office.context.mailbox.convertToRestId(
      Office.context.mailbox.item.itemId, 
      Office.MailboxEnums.RestVersion.v2_0 
    ); 
    } 
} 

function getCurrentItem(accessToken) { 
    var itemId = getItemRestId(); 
    var getMessageUrl = 'https://outlook.office.com' + 
     '/api/v2.0/messages/' + itemId; 

    $.ajax({ 
     url: getMessageUrl, 
     dataType: 'json', 
     headers: { 'Authorization': 'Bearer ' + accessToken } 
    }).done(function(item){ 
     var subject = item.Subject; 
    }).fail(function(error){ 
     // log error is here 
    }); 
} 

Office.context.mailbox.getCallbackTokenAsync({isRest: true}, function(result){ 
    if (result.status === "succeeded") { 
     var accessToken = result.value; 
     // Use the access token 
     getCurrentItem(accessToken); 
     } else { 
     // Handle the error 
     } 
}); 

Ce que je fait de mal? Pensez-vous que c'est parce que j'ai remplacé la valeur restUrl? J'utilise un email de domaine personnalisé.

Nous vous remercions de votre temps!

+0

Je suis également confronté au même problème. Quelqu'un pourrait-il m'aider s'il vous plaît dans ceci? – panwar

Répondre

1

Je faisais face au même problème.

i utilisé

var getMessageUrl = 'https://outlook.office.com/api/v2.0/me/messages/'+ itemId+"/attachments"; 

au lieu de ci-dessous url:

var getMessageUrl = 'https://outlook.office.com/api/v2.0/messages/' + itemId; 

API donne une réponse appropriée après l'utilisation de la première API.

+1

Celui-ci fonctionne réellement! Merci! –

1

Étant donné que vous ne recevez pas de valeur de la propriété restUrl, je suppose que vous utilisez un serveur Exchange sur site. Ceci est un known issue avec des installations sur site. C'est aussi pourquoi l'utilisation du https://outlook.office.com ne fonctionnera pas (votre serveur ne se trouve pas à cet URI).

Vous pouvez peut-être contourner ce problème en utilisant la configuration Hybrid Deployment. Cela vous permet d'exécuter des appels d'API Microsoft Graph sur un serveur local. Cela dit, j'ai pas essayé ce donc il peut ne pas fonctionner dans ce scénario. Étant donné que tous ces composants (1.5 et Hybrid) sont dans Preview, des résultats inattendus doivent toujours être attendus.

+0

c'est totalement logique, merci! –