2016-07-08 18 views
1

私は自分のspotify-accountからデータを取得し、それをエクセルシートに入れようとしています。 Spotify Web APIを使用してデータにアクセスするためのVBAコードを作成したいと思います。REST API経由でSpotify AccountsサービスへのPOST要求にVBAを使用

私はSpotify Web API Authorization Guideに従っていましたが、アクセストークンを要求しようとしたときに動かなくなりました。私はSpotify AccountsサービスにPOSTリクエストをしなければならないが、明らかに何か間違っている。

私は "WinHttp.WinHttpRequest.5.1"を使用して投稿要求を行っています。ここでは、コード

Set HttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1") 
HttpRequest.Open "POST", "https://accounts.spotify.com/api/token" 
HttpRequest.SetRequestHeader 
HttpRequest.SetRequestHeader "Authorization", "Basic " & strClient_secret 
HttpRequest.Send ("grant_type=authorization_code&code=" & strCode & "&redirect_uri=http://www.js76.nl/diskkoffer/") 

の一部である応答テキストは、「おっと!エラーが発生しました。もう一度お試しいただくか、当社のヘルプエリアをチェックしてみてください。」と言うが、私は何が悪かったのかを把握することはできません。私はこれらのhttpリクエストに何の経験も持っていません。

文字列strClient_secretおよびstrCodeは、プログラムの別の部分に格納されます。

誰もがこれを手伝ってくれますか?

答えて

1

私はスポットアカウントを持っていないので、ユーザー名パスワードはわかりません。しかし、彼らのドキュメントにはREST実装があると言われているので、あなたの資格情報は64ビットでエンコードする必要があります。

64ビット符号化する必要がstrClient_secret可変HttpRequest.SetRequestHeader "Authorization", "Basic " & strClient_secret

この行に。

このように、プレースホルダを正しいユーザー名とパスワードで置き換えてみてください。その後、

Private Function EncodeBase64() As String 
    arrData = StrConv(<<YOUR_SPOTIFY_USERID>> & ":" & <<YOUR_SPOTIFY_USERPASS>>, vbFromUnicode) 

    Set objXML = New MSXML2.DOMDocument 
    Set objNode = objXML.createElement("b64") 

    objNode.DataType = "bin.base64" 
    objNode.nodeTypedValue = arrData 
    EncodeBase64 = objNode.text 

    Set objNode = Nothing 
    Set objXML = Nothing 
End Function 

に上記の行を次のように変更します HttpRequest.SetRequestHeader "Authorization", "Basic " & EncodeBase64

RESTおよびVBAのためにここを見て:http://ashuvba.blogspot.com/2014/08/excel-vba-json-rest-with-jira-json-is.html

それがうまくいけば、正しいルートであなたを設定します。

+0

MSXML2への参照が必要ですか? – dbmitch

+0

うん、そうだよ。レイトバインディングを使用したい場合を除きます。 – cyboashu

+0

あなたの答えはThxサイボーシャです。私はそれが正しいルートで私を設定すると思うが、私はまだそこにいない。私はユーザー名/パスワードをエンコードすることができました。最初は出力に2行含まれていましたが、エラー5 "無効なプロシージャ呼び出しまたは引数"が表示されていました。 「改行」を削除するとエラーはなくなりますが、Spotifyのエラーページは応答テキストとして表示されます。 – ronbrand

関連する問題