teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

cURLでの動作

2021/07/21 23:38

投稿

RyoS_
RyoS_

スコア4

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ## 実現したいこと
2
2
  ユーザーをHubSpotに追加する`POST /crm/v3/objects/contacts`を実装したいです。
3
- [サイトURL](https://developers.hubspot.jp/docs/api/crm/contacts)
3
+ [https://developers.hubspot.jp/docs/api/crm/contacts](https://developers.hubspot.jp/docs/api/crm/contacts)
4
4
 
5
5
  ## デプロイ
6
6
  Herokuで行っています。
@@ -106,6 +106,85 @@
106
106
 
107
107
  しかし、`Log::info($formParams)`を見る限り、JSON化されているように思えました。
108
108
 
109
+ ## cURLでの実装
110
+ 公式サイトのPHPでは、cURLコマンドを使用しているのでこちらのコードで検証してみました。
111
+ cURLでは、うまくいきました。
112
+ [https://developers.hubspot.jp/docs/api/crm/contacts](https://developers.hubspot.jp/docs/api/crm/contacts)
113
+
114
+ ```php:HubspotController.php
115
+ <?php
116
+
117
+ namespace App\Http\Controllers;
118
+
119
+ use Illuminate\Http\Request;
120
+ use GuzzleHttp\Client;
121
+
122
+ // Log
123
+ use Illuminate\Support\Facades\Log;
124
+
125
+ class HubSpotController extends Controller
126
+ {
127
+ public function store(Request $request)
128
+ {
129
+ try {
130
+ // env
131
+ $HubSpotApiKey = config("env.hubspot_api_key");
132
+
133
+ // HubSpot Value
134
+ $profileName = "aaa";
135
+ $profileEmail = "aaa@gmail.com";
136
+
137
+ Log::info($profile["name"]);
138
+ Log::info($profile["email"]);
139
+
140
+
141
+ // Register HubSpot
142
+ $data = array(
143
+ "properties" => [
144
+ "email" => $profileEmail,
145
+ "firstname" => $profileName
146
+ ]
147
+ );
148
+
149
+ $formParams = json_encode($data, JSON_UNESCAPED_UNICODE);
150
+
151
+ Log::info($formParams);
152
+
153
+ $curl = curl_init();
154
+
155
+ curl_setopt_array($curl, array(
156
+ CURLOPT_URL => "https://api.hubapi.com/crm/v3/objects/contacts?hapikey=" . $HubSpotApiKey,
157
+ CURLOPT_RETURNTRANSFER => true,
158
+ CURLOPT_ENCODING => "",
159
+ CURLOPT_MAXREDIRS => 10,
160
+ CURLOPT_TIMEOUT => 30,
161
+ CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
162
+ CURLOPT_CUSTOMREQUEST => "POST",
163
+ CURLOPT_POSTFIELDS => $formParams,
164
+ CURLOPT_HTTPHEADER => array(
165
+ "accept: application/json",
166
+ "content-type: application/json"
167
+ ),
168
+ ));
169
+
170
+ $response = curl_exec($curl);
171
+ $err = curl_error($curl);
172
+ curl_close($curl);
173
+
174
+ if ($err) {
175
+ Log::info($err);
176
+ } else {
177
+ Log::info($response);
178
+ }
179
+ } catch (\GuzzleHttp\Exception\BadResponseException $e) {
180
+ Log::info($e);
181
+ return $e->getResponse()->getBody()->getContents();
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+
109
188
  ## 質問事項
110
189
  なぜこのようなエラーが発生するのでしょうか?
111
190
  また、このエラー解消のためにはどのようにすればいいのでしょうか?

2

修正

2021/07/21 23:37

投稿

RyoS_
RyoS_

スコア4

title CHANGED
File without changes
body CHANGED
@@ -110,4 +110,5 @@
110
110
  なぜこのようなエラーが発生するのでしょうか?
111
111
  また、このエラー解消のためにはどのようにすればいいのでしょうか?
112
112
 
113
+
113
114
  よろしくお願いいたします。

1

タイトルを変更

2021/07/21 10:53

投稿

RyoS_
RyoS_

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- HubSpotのAPIを叩いたら「Invalid input JSON」のエラーが発生する
1
+ 【Laravel/PHP】HubSpotのAPIを叩いたら「Invalid input JSON」のエラーが発生する
body CHANGED
File without changes