2017-05-13 26 views
0

これはおそらく非常に単純な問題ですが、私はかなり新しいcurlです。正しく説明されたことはありません。 curlでアクセストークンを取得しなければならないのは今回が初めてで、例は見たことがありません。私のGoogle検索は役に立ちませんでした。Google Appsスクリプトとカール

私はアクセストークンを取得した後にトランザクション要求を行う方法を知っていますが、トークンを取得してそのステップに進むことはできません。以下は

トークンを取得する方法のAPIドキュメントの例である:

curl -X POST -u <API USERNAME>:<API SECRET KEY> https://api.neverbounce.com/v3/access_token\ 
-d grant_type=client_credentials\ 
-d scope=basic+user 

UrlFetchAppはURLが必要ですが、この例のURLはの一部であるため、私はGoogle Apps Scriptでこの呼び出しを行うことが出来るのですか要求?

UPDATE

これは私のコードのサンプルです:

function NBpost() { 
    var dataString = 'grant_type=client_credentials&scope=basic+user'; 
    var url = "https://api.neverbounce.com/v3/access_token"; 
    var options = 
    { 
     "method" : "post", 
     "auth": { 
     'user': <USERNAME>, 
     'pass': <SECRET KEY>, 
     }, 
     body : dataString, 
     "muteHttpExceptions" : true 
    }; 
    var response = JSON.parse(UrlFetchApp.fetch(url, options).getContentText()); 
} 

応答は常に同じです:

error:"invalid_request", 
error_description:"The grant type was not specified in the request" 

私も試してみました:

var dataString = { 
    "grant_type": "client_credentials", 
    "scope" : "basic user" 
}; 

しかし、応答は変わりません。私は間違って何をしていますか?私は次の変更作ら

UPDATE 2

:今

function myFunction(){ 
    var url ='https://api.neverbounce.com/v3/access_token'; 
    var options = { 
     method: "post", 
     u: { 
     <USERNAME> : <SECRET KEY> 
     }, 
     payload: { 
     "grant_type": "client_credentials", 
     "scope": "basic user" 
     }, 
     muteHttpExceptions: true 
    }; 
    var response = JSON.parse(UrlFetchApp.fetch(url, options).getContentText()); 
} 

は、私はこのエラーを取得する:サンプルスクリプトを以下について

error:"invalid_client" 
error_description:"Client credentials were not found in the headers or body" 

答えて

2

どのように?私は<API USERNAME><API SECRET KEY>を持っていないので、これがうまくいくかどうかわかりません。

サンプルスクリプト:

var apiusername = <API USERNAME> 
var apisecretkey = <API SECRET KEY> 
var url ='https://api.neverbounce.com/v3/access_token'; 
var options = { 
    method: 'post', 
    headers : {"Authorization" : " Basic " + Utilities.base64Encode(apiusername + ":" + apisecretkey)}, 
    payload: { 
    "grant_type": "client_credentials", 
    "scope": "basic+user" 
    }, 
    muteHttpExceptions: true 
}; 
var response = JSON.parse(UrlFetchApp.fetch(url, options).getContentText()); 

これが動作しないか、私はあなたの質問を誤解している場合、私は申し訳ありませんならば。

+0

私はこの試みに感謝しますが、このエラーが発生します。「例外:ログイン情報が許可されていません」 – davids

+0

すみません。今更新しました。これにはヘッダーに対する基本認証が含まれていました。試してみてください。 – Tanaike

関連する問題