2016-12-19 26 views
1

APIについてはほとんど分かりませんが、実際はほとんどありません。私はアダプティブ・インサイトからいくつかのデータを抽出するPOSTリクエストを行うためにGoogle POSTMANを使いました。私がしたいのは、Excel VBAからの呼び出しを実行し、ボタンを押すことによって必要なときにExcelシートを更新することです。VBAからのAPI呼び出し

ここ

がPOSTMANからの抜粋です:ここでは

 POST /api/v13 HTTP/1.1 
    Host: api.adaptiveinsights.com 
    Authorization: Basic ZmlubWdyX3NhbGVzQHN0ZW1jZWxsLmNvbTpBZGFwdGl2ZTE= 
    Content-Type: application/xml 
    cache -Control: no -cache 
    Postman-Token: 650bd3ad-82e9-aa33-ae77-ee4d89ff0fd8 

    <?xml version='1.0' encoding='UTF-8'?> 
    <call method="exportData" callerName="Export.xlsx"> 
    <credentials login="******@****.com" password="*****"/> 
    <version name="FY2017-November V2" isDefault="false"/> 
    <format useInternalCodes="true" includeUnmappedItems="false"/> 
    <filters> 
    <timeSpan start="Jan-2017" end="Feb-2017"/></filters> 
     <rules includeZeroRows="false" includeRollups="true" markInvalidValues="false" markBlanks="false" 
    timeRollups="single"> 
    </rules> 
    </call> 

がPOSTMAN

 <?xml version="1.0" encoding="UTF-8"?> 
    <response success="true"> 
    <output><![CDATA[Account Name,Account Code,Level Name,Rollup 
     ....................................................... 

から出力された私は、グーグルの公平なビットを行なったし、これは私が私のマクロのために、これまで持っているものです。

 myURL = "https://api.adaptiveinsights.com/api/v13" 
     xmlHTTP.Open "POST", myURL, False 
     xmlHTTP.SetCredentials "****@****.com", "*****", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER 
     xmlHTTP.SetRequestHeader "Content-Type", "application/xml" 
     xmlHTTP.Send 

     Set xmlResult = New MSXML2.DOMDocument 

     xmlResult.LoadXML xmlHTTP.ResponseText 

私の質問は以下のとおりです。

timeSpanは= "JAN-2017" 終了= "2月-2017" を開始している "FY2017〜11月V2" -
  1. は、どのように私はこのデータの特定のセットに接続します。

  2. データをExcelに読み込むにはどうすればよいですか、基本的にはVBAでPOSTMANで行ったことはありますか?

    四つのフィールドがあります - 3文字と数字の1(アカウント名、アカウントコード、レベル名、ロールアップ):

データは次のようになります

"6020スタッフ給付" は、 6020、 "Accounting-Corp"、20.3252

本当に助けていただければ幸いです。

は、私はあなたの認証がここで間違っていると思う

Valglad

+0

ので、リターン形式のXMLがありますか? MSXML2ライブラリ(既に参照している)を使用して、VBAコードでXmlにドリルインすることもできます。または、Excelユーザーインターフェイスを試して、マクロレコーダーを使用してサンプルコードを表示することもできます。私はxmlファイルを開こうとするとExcelが多くのことをすることができるという事実を知っています。 –

+0

API呼び出しの結果を取得するか、返されたデータを解析するかは、正確な問題が何であるかは、あなたの質問からは明らかではありませんか?後者の場合は、含まれている小さなスニペットより多くのAPI出力を表示するのに役立ちます。 "csv"形式(CDATAセクション)で表現されたデータの表のように見えるので、標準XMLメソッドを使用して個々のデータ点を解析することはできません。それがあなたの助けを必要とする場所なら、それ以上のことを見せてください。 –

+0

*サンプルデータを追加するには*あなたの質問を編集してください –

答えて

0

ありがとうございます。すべてのXMLを認証資格情報を含む単一の変数に入れます。 Adaptive Insightsの場合、これはXMLテキストの一部です。

request = "<?xml version= ... </call>" 
URL = "https://api.adaptiveinsights.com/api/v13" 
Set objXML = CreateObject("MSXML2.ServerXMLHTTP") 
objXML.Open "POST", URL, False 
objXML.setRequestHeader "Content-Type", "text/xml" 
objXML.send (request) 
xmlResponse = objXML.responsetext 
MsgBox (xmlResponse) 

メッセージボックスの最初の部分が表示されます。 CDATAブロックを解析する仕事はまだありますが、これは単なるテキスト操作です。

関連する問題