##目的
Qiitaから投稿記事のタイトルとURL、投稿日の取得。(下記サイトのように使用しました。)
http://kudohayatoblog.com/blog_top
##アクセストークンの取得
下記ページで「新しくトークンを発行する」からトークンを発行。
https://qiita.com/settings/applications
※今回は書き込みをしないので、「read_qiita」を選択。
##API通信
今回はcURLを使用した方法と、GuzzleHttpを使用した方法を紹介します。
###cURLでの通信
$token = '取得したアクセストークン';
$curl = curl_init('https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=10');
$option = [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.$token,
'Content-Type: application/json',
],
];
curl_setopt_array($curl, $option);
$result = curl_exec($curl);
$decode_res = json_decode($response_body);
↑で取得できたので、後はforeachなどで取得できます。
foreach ($decode_res as $res_data) {
$url = $res_data->url; //urlの取得例
}
###GuzzleHttpでの通信
下記コマンドでGuzzleのインストール。
composer require guzzlehttp/guzzle
use GuzzleHttp\Client;
$client = new Client;
$token = '取得したアクセストークン';
$result = $client->request('GET', 'https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=10', [
'headers' => [
'Authorization' => 'Bearer '.$token,
'Accept' => 'application/json',
],
]);
$response_body = (string) $result->getBody();
$decode_res = json_decode($response_body);
先ほどと同様foreachなどで取得できます。
foreach ($decode_res as $res_data) {
$url = $res_data->url; //urlの取得例
}
###最後に
API認証について、Laravelの公式ドキュメントでは以下のように記載されていますが、ここの$clientが何なのかよくわからなかったのでGuzzleを使用しました。
わかる人がいれば教えてください!
$response = $client->request('POST', '/api/user', [
'headers' => [
'Authorization' => 'Bearer '.$token,
'Accept' => 'application/json',
],
]);