スタックオーバーフローを保存してください..そして私は誰かがAPIを使用して参加者を登録したことを祈っています(そしてカスタム質問への回答を送信します)。
さて、最初に、登録者を作成するためのドキュメントは次のとおりです。
POST https://api.citrixonline.com/G2W/rest/organizers/73563532324/webinars/89... HTTP/1.1
Accept: application/json
Accept: application/vnd.citrix.g2wapi-v1.1+json
Content-Type: application/json
Authorization: OAuth oauth_token={oauthToken}
{
"firstName":"Saumil",
"lastName":"Jhaveri",
"email":"test@test.com",
"address":"650+Townsend+St,+St.+325",
"city":"San+Francisco",
"state":"California",
"zipCode":"94103",
"country":"United+States",
"phone":"3123751884",
"industry":"Accounting",
"organization":"Citrix",
"jobTitle":"Software+Engineer",
"purchasingTimeFrame":"13+months",
"roleInPurchaseProcess":"Decision+Maker",
"numberOfEmployees":"120",
"questionsAndComments":"No+Comments!",
"responses":[
{
"questionKey":152,
"responseText":"Fantastic!"
}, {
"questionKey":151,
"answerKey":152
}
]
}
したがって、上記のjson restの例からわかるように、REST本体は、名前、電子メールなどの「通常の」値の配列である必要があります。
例の下部を見ると、この配列内にresponsesという配列があります。
この配列には、カスタム質問IDとユーザー応答の配列が含まれています。
では、カスタムの質問が1つしかない場合はどうなりますか?
私が試してみました:
array('firstName' => $fname, 'lastName' => $lname, 'email' => $em,
'responses' => array('questionKey' => 300000000000042400, 'responseText' => $custom));
また、試してみました(質問は1つだけですが、配列の配列):
array('firstName' => $fname, 'lastName' => $lname, 'email' => $em,
'responses' => array(array('questionKey' => 300000000000042400, 'responseText' => $custom)));
データに対してjson_encodeを実行すると、これが出力になります
{
"firstName":"Ellis",
"lastName":"Ryan",
"email":"ryanthecloser@gmail.com",
"responses":[
{
"questionKey":3.0e+17,
"responseText":"http:\/\/facebook.com\/doubleyourlikes"
}
]
}
この質問を入力しているときに、問題が発生したと思います... jsonデータ(より具体的にはquestionkey)が科学的記数法に変換されています... questionKeyを文字列として送信しようとしましたが、機能しませんでした。
科学的記数法が問題になることを願っています。PHPで数字をこれほど大きくする方法は誰でも知っています:300000000000042400
そして、数値を変換せずにencode_jsonを実行できますか?または、誰かがAPIを使用して登録者に表示されるカスタムの質問応答を正常に取得した場合は、私に知らせてください!
前もって感謝します!