2017-07-06 27 views
0

V3 APIを使用してイベントを作成しようとしています。私が遣わすパラメータは次のとおりです。APIを使用してEventbriteイベントを作成できません

var _event = { 
    "event" : { 
     "name": { 
      "html": "Test Event 01" 
     }, 
     "description": { 
      "html": "Test Event 01" 
     }, 
     "start": { 
      "timezone": "America/Chicago", 
      "utc": "2017-07-10T18:00:00Z" 
     }, 
     "end": { 
      "timezone": "America/Chicago", 
      "utc": "2017-07-10T20:00:00Z" 
     }, 
     "currency": "USD" 
    } 
}; 

これは私がNodeJSを使用してリクエストを送信しています方法です:

var request = require('request'); 
var _headers = { 
    'Authorization': 'Bearer ' + _token, 
    'Content-Type': 'application/json', 
} 

// Configure the request 
var options = { 
    url: EVENTBRITE_API_URL + "events/", 
    method: 'POST', 
    headers: _headers, 
    form: _event 
} 

私もContent-Type: application/x-url-form-encodedoptions内、JSON.stringify(_event)を試してみました。私も_eventオブジェクトを変更しようとしました:

var _event = {   
    "name": { 
     "html": "Test Event 01" 
    }, 
    "description": { 
     "html": "Test Event 01" 
    }, 
    "start": { 
     "timezone": "America/Chicago", 
     "utc": "2017-07-10T18:00:00Z" 
    }, 
    "end": { 
     "timezone": "America/Chicago", 
     "utc": "2017-07-10T20:00:00Z" 
    }, 
    "currency": "USD" 
}; 

私はすべての組み合わせを試してみましたが、私はいつも同じ応答を得る:

{ 
    "status_code": 400, 
    "error_description": "There are errors with your arguments: event[currency] - Unknown parameter, event.start.timezone - This field is required., event.currency - This field is required., event.start.utc - This field is required., event[start][timezone] - Unknown parameter, event.end.utc - This field is required., event[end][utc] - Unknown parameter, event[description][html] - Unknown parameter, event[name][html] - Unknown parameter, event[end][timezone] - Unknown parameter, event[start][utc] - Unknown parameter, event.end.timezone - This field is required., event.name.html - This field is required.", 
    "error": "ARGUMENTS_ERROR" 
} 

は、任意のサンプルはどこにでも私がに見ることができるイベント要求を作成してありますか?上記のリクエストの問題は何ですか?

答えて

0

私は現在、フォームの投稿を(formオプションを使用して)送信していますが、パラメータは{ "event.currency": "USD", "event.name.html": "Test Event 01", ... }のように表示されるはずです。 、私はこれはそれを行うべきだと思いますが、フォームのポストに固執する場合

var request = require('request'); 
var _headers = { 
    'Authorization': 'Bearer ' + _token, 
    'Content-Type': 'application/json', 
} 

// Configure the request 
var options = { 
    url: EVENTBRITE_API_URL + "events/", 
    method: 'POST', 
    headers: _headers, 

    // Instead of this: 
    // form: _event 

    // use this: 
    json: true, // says you're sending JSON 
    body: _event, // so the body should be JSON-serializable 
}; 

:あなたはJSONを送信する場合は、json: trueを使用してJSON直列化体を渡す必要が

var _event = { 
    "event.name.html": "Test Event 01", 
    "event.description.html": "Test Event 01", 
    "event.start.timezone": "America/Chicago", 
    "event.start.utc": "2017-07-10T18:00:00Z", 
    "event.end.timezone": "America/Chicago", 
    "event.end.utc": "2017-07-10T20:00:00Z", 
    "event.currency": "USD", 
}; 

var request = require('request'); 
var _headers = { 
    'Authorization': 'Bearer ' + _token, 
    'Content-Type': 'application/x-www-form-urlencoded', 
} 

// Configure the request 
var options = { 
    url: EVENTBRITE_API_URL + "events/", 
    method: 'POST', 
    headers: _headers, 
    form: _event, 
}; 
+0

BTW、この種のもののための便利なデバッグツールはhttps://requestb.in/です。 Eventbrite APIの代わりにAPIリクエストを送信すると、送信している内容を正確に見ることができます。そこで、JSONではなくフォームエンコードされたボディを送信していることがわかります。 – smarx

+0

ブリリアント。絶対に素晴らしい。あなたは私の一日を救った! – User2682

関連する問題