質問編集履歴
3
cURLでの動作
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
## 実現したいこと
|
2
2
|
ユーザーをHubSpotに追加する`POST /crm/v3/objects/contacts`を実装したいです。
|
3
|
-
[
|
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
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -110,4 +110,5 @@
|
|
110
110
|
なぜこのようなエラーが発生するのでしょうか?
|
111
111
|
また、このエラー解消のためにはどのようにすればいいのでしょうか?
|
112
112
|
|
113
|
+
|
113
114
|
よろしくお願いいたします。
|
1
タイトルを変更
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
|