2016-03-30 3 views
3

私は、Node.jsテクノロジを使用してAzureアカウントのユーザを更新しようとしています。私は、azure-graphapiモジュールを使用して要求を送信し、初期化しています。 以下は私のコードです。ノードjsのazure-graphapiモジュールを使用しているユーザを更新する

var GraphAPI = require('azure-graphapi'); 
var graph = new GraphAPI(appSettings.oauthOptions.tenantId, appSettings.oauthOptions.clientId, appSettings.oauthOptions.clientSecret); 
var reqHeaders = { "content-type": "application/json" }; 
var reqBody = { 
      "department": "Sales", 
      "usageLocation": "US" 
     } 
    var person = { 
     userId: userID 
    }; 

graph.patch('users/f0eceb4f-xxxx-409a-xxxx-4e3exx4e3157', JSON.stringify(reqBody), reqHeaders, function (err, user) { 
     if (!err) { 
      console.log(user); 
     } 
     else { 
      console.log(err); 
     } 
    }); 

てもContent-Typeヘッダを設けた後、それはのように私にエラーを投げている "{[エラー:グラフAPIエラー:400(悪いRequest)Content-Typeヘッダの値が欠落している]からstatusCode:400}"

この問題に関して誰かが私を助けることができれば、大きな助けになるでしょう。

答えて

2

このモジュールにはいくつかの間違いがあります。コードを動作させるために、我々はソースコードnode_modules/auzre-graphapiGraphAPI.jsでいくつかの追加の変更を行う必要があります。Line 195

スタートし、if条件のstmtがあり、著者はline 199以来使用されているcontentを定義することを忘れそうですし、ポストボディをbufferオブジェクトに解析する必要がある場合にのみ、content-typeヘッダーが設定されます。そこで、我々はすぐにように、コードを変更することができます。

if (data) { 
     if (Buffer.isBuffer(data)) { 
      options.headers['Content-Type'] = contentType; 
     } else if (!contentType) { 
      content = data; 
      if (typeof content === 'string') { 
       options.headers['Content-Type'] = 'application/x-www-form-urlencoded'; 
       options.headers['Content-Length'] = content.length; 
      } else if (content !== null && typeof content === 'object') { 
       content = JSON.stringify(content); 
       options.headers['Content-Type'] = 'application/json'; 
       options.headers['Content-Length'] = content.length; 
      } 
     } else { 
      if (typeof contentType === 'string') { 
       options.headers['Content-Type'] = contentType; 
      } else if (contentType['Content-type'] !== null) { 
       options.headers['Content-Type'] = contentType['Content-type']; 
      } 
     } 
    } 

そして、あなたのコードとヘッダを設定します。ところでvar reqHeaders = { "Content-type": "application/json" };

update user documentが参照として、それが成功した場合、応答204レスポンスボディなしますので、ご成功すればコードは "undefined"を出力します。 2016年4月19日

著者は、それ以上の保守パッケージはない、と彼はユニバーサルグラフAPIの新しいパッケージgraph-serviceを作成していたよう

更新。 https://github.com/fhellwig/azure-graphapi/issues/5#issuecomment-211392546

を参照してください。

関連する問題