1

スタックオーバーフローを保存してください..そして私は誰かが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を使用して登録者に表示されるカスタムの質問応答を正常に取得した場合は、私に知らせてください!

前もって感謝します!

4

2 に答える 2

4

はぁ

questionKeyを文字列として渡すことは100%問題ないので、問題はなくなります...

私の問題は、実際には2つのバージョンのcreateregistrantがあるということでした。

バージョン1:名前と電子メールを受け入れ、その他すべてを破棄しますバージョン2:追加
受け入れ:application / vnd.citrix.g2wapi-v1.1 + json

ヘッダーに移動して、2番目のバージョンを選択します。2番目のバージョンでは、カスタムフィールドを使用できます。

追加のヘッダーパラメータを含めなかったため、カスタムフィールドデータは破棄されました。

Grrrr私はドキュメンテーションでそのトンを何度も読みました...RTM!、そしてそれが言うことをしてくださいlol!

于 2012-06-05T16:17:41.873 に答える
0

LARGE整数を数値のままにするには、PHPをバージョン5.4以降に更新し、次のようなものを使用する必要があります。

$response = curl_exec( $ch );

$json = json_decode( $response, true, 512, JSON_BIGINT_AS_STRING );

また

$response = curl_exec( $ch );

$response = preg_replace('/("\w+"):(\d+)/', '\\1:"\\2"', $response );  # quote the number
$json = json_decode( $response );
于 2013-12-11T23:06:31.267 に答える