2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LaravelでQiita APIを使用し投稿した記事を取得してみた

Posted at

##目的
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',
    ],
]);
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?