こちらのinterfaceを実装したクラスを用意していただければ、curlを使用せずにご利用いただけます。 https://github.com/line/line-bot-sdk-php/blob/master/src/LINEBot/HTTPClient.php
例(Guzzleを使った場合のイメージです。動作未検証です。)↓
class CustomHTTPClient implements HTTPClient
{
public function __construct()
{
$this->client = new GuzzleHttp\Client();
}
public function setAccessToken(string $token)
{
$this->token = $token;
}
public function get($url, array $data = [], array $headers = [])
{
$r = $this->client->get($url, [
'headers' => $this->convertHeaders($headers + ['Authorization' => 'Bearer ' . $token]),
'query' => $data,
]);
return new Response($r->getBody()->getContents(), $r->getStatusCode(), $r->getHeaders());
}
public function convertHeaders(array $headers)
{
$converted = [];
foreach ($headers as $header) {
$splited = explode(': ', $header);
$converted[splited[0]] = splited[1];
}
return $converted;
}
......
}
$client = new CustomHTTPClient();
$client->setAccessToken('<channel access token>'); // CustomHTTPClientの実装次第
$bot = new \LINE\LINEBot($httpClient, ['channelSecret' => '<channel secret>']);
- 0