2017-03-16 10 views
2

私が働く会社は、Office 365の連絡先をエクスポートしてユーザープロファイルの連絡先にインポートするAPIを開発する必要があります。これは何らかのデーモンとして実行されます。Microsoft Graph API - ユーザーの応答JSONが完了しません

私はMicrosoftのGraph APIを見つけ、それを稼働させるために数日間作業していましたが、GET連絡先機能は私にとってはうまくいかないようです。

私はリソースgraph.microsoft.comを使用しており、 /users/{id}/contactsと連絡先を取得しようとしています(PHP cURLを使用)。

stdClass Object 
(
    [error] => stdClass Object 
     (
      [code] => ResourceNotFound 
      [message] => Resource could not be discovered. 
      [innerError] => stdClass Object 
       (
        [request-id] => 134b1964-9421-4fce-84ba-aca1525c705e 
        [date] => 2017-03-20T15:35:39 
       ) 

     ) 

) 

私はアクセストークンがうまく取得しています(私のアプリは現在、見つからないため、特権の立ち往生されるのを避けるために、すべての読み取り/書き込み権限を要求し、それらが管理者アカウントでに同意されています)。

これは、ユーザーの応答JSONが想定どおりに完全にフォーマットされていないためです。 Microsoft's Documentationは、Userリソースの完全な表現を示しています。私が必要とする「連絡先」のような他のリソースとのすべての関係が喪失しているようです。ここで私は/users/{id}を使用してグラフAPIから取得JSONです:

stdClass Object 
(
    [@odata.context] => https://graph.microsoft.com/beta/$metadata#users(contacts)/$entity 
    [id] => e4007399-90fb-489d-a0f8-2c577f219638 
    [accountEnabled] => 1 
    [assignedLicenses] => Array 
     (
     ) 

    [assignedPlans] => Array 
     (
     ) 

    [businessPhones] => Array 
     (
     ) 

    [city] => 
    [companyName] => 
    [country] => 
    [department] => 
    [displayName] => Loic Didelot 
    [givenName] => Loic 
    [jobTitle] => 
    [mail] => 
    [mailNickname] => vendors_mixvoip.com#EXT# 
    [mobilePhone] => 
    [onPremisesDomainName] => 
    [onPremisesImmutableId] => 
    [onPremisesLastSyncDateTime] => 
    [onPremisesSecurityIdentifier] => 
    [onPremisesSamAccountName] => 
    [onPremisesSyncEnabled] => 
    [onPremisesUserPrincipalName] => 
    [passwordPolicies] => 
    [passwordProfile] => 
    [officeLocation] => 
    [postalCode] => 
    [preferredLanguage] => 
    [provisionedPlans] => Array 
     (
     ) 

    [proxyAddresses] => Array 
     (
     ) 

    [refreshTokensValidFromDateTime] => 2017-03-14T09:13:10Z 
    [showInAddressList] => 
    [imAddresses] => Array 
     (
     ) 

    [state] => 
    [streetAddress] => 
    [surname] => Didelot 
    [usageLocation] => 
    [userPrincipalName] => vendors_mixvoip.com#EXT#@vendorsmixvoip.onmicrosoft.com 
    [userType] => Member 
) 

私はこの問題を検索しようとすると、この問題を解決する方法を見つけることができませんでしたが、私はその缶「カスタムプロパティ」の結果を得ます/users/{id}?$select=customPropertyNameを使用して選択してください。これは/users/{id}?$select=contactsでは機能しません。

ご協力いただきありがとうございます。接点があるが、(あなたが私たちのドキュメントの概要のフロントページを見れば、いくつかの例のクエリがあります。またhttps://developer.microsoft.com/en-us/graph/graph-explorer

答えて

0

Microsoftグラフエクスプローラは、あなたの友人(APIへのRESTリクエストを試すための簡単な方法)でありますないそのうちの一つに)それはあなたにいくつかのアイデアを与えるでしょう:とにかくhttps://developer.microsoft.com/en-us/graph/docs

- あなたが作る必要があるの呼び出しは

GET https://graph.microsoft.com/v1.0/users/{id}/contacts 

これは個人的な連絡先のユーザー/ {ID}のセット/コレクションを返します。リソースタイプ(コレクションの場合)はcontactで、userではありません。接触リソースタイプとリストの連絡先の詳細については

は、以下のトピックを参照してください https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/contact https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list_contacts

希望を、これは私がグラフエクスプローラを試してみましたが、それは私がでサインインさせません

+0

、助けユーザー私はアプリを登録しました。あなたは私のポスト全体を読んでいないかもしれませんが、私は** GET https://graph.microsoft.com/v1.0/users/{id}/contactsを使って連絡先を取得していますが、私はエラー 'リソースは記述できませんでした'を取得しています。このエラーを検索しても役に立ちませんでした。返されたユーザーJSONは、ドキュメント化されたユーザーJSONと同じではないため、完全ではないと考えるようになりました。 – Fred

+0

Microsoftアカウントに登録しましたか?もしそうなら、はい、私たちはこれにいくつかの問題を抱えているので、その機能は無効になっています。完全なエラーメッセージ(要求IDとタイムスタンプを含む)で質問を更新できますか?これはすべてのユーザーにとって失敗しますか?個人の連絡先をフェッチしようとしているユーザーにExchange Onlineのライセンス/メールボックスがない可能性はありますか? –

+0

私はMicrosoftアカウントでアプリを登録しませんでした。これは必須ですか?その場合、なぜ私はそれなしですべてのステップを行うことができますか? (私は20日にエラー応答でポストを更新しました) – Fred

関連する問題