LoginSignup
6

More than 3 years have passed since last update.

posted at

【PHP】APIを使用しQiitaでの自分の投稿を取得する方法。

Qiitaでの自分の投稿を取得しよう!

今回は、ポートフォリオに学習したことを掲載するためQiitaの投稿を取得しました。そして、取得した内容をブラウザに表示するまでのことを記事にします。

コード

index.php
<?php
$curl = curl_init('https://qiita.com/api/v2/authenticated_user/items');
$option = [
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer [取得したアクセストークン]',
    'Content-Type: application/json',
  ],
];
curl_setopt_array($curl, $option);

$result = curl_exec($curl);

$decode_res = json_decode($result);
?>

<DOCTYPE html>
/
/ (省略)
/
<?php foreach($decode_res as $res){ ?>
   <a href="<?php echo $res->url;?>" target="_brank">
     <p><?php echo $res->title;?></p>
   </a>
<?php } ?>

基本的にはアクセストークンをQiitaで取得し自分の投稿を取得します。
配列の形になって返ってくるので、foreachで回すだけです。

Qiitaのアクセストークン取得方法

「設定」⇨「アプリケーション」⇨「新しくトークンを発行する」
この後は、自分が何をしたいのかによって取得するトークンは変わるのですが、今回は投稿を取得するので「read_qiita」でアクセストークンを取得します。

関数curl()

取得したら実際にコードを書いていきます。
その時に使うのがcurl()関数です。
今回はこちらを使います。
・curl_init()
・curl_setopt_array()
・curl_exec()
・curl_close()
流れはこう。
1,curl_init()で初期化
2,curl_setopt_array()で色々なオプションを決める
3,curl_exec()で実行
4,curl_close()で終了

説明

まずcurl_init()にこのURLを「https://qiita.com/api/v2/authenticated_user/item」
ちなみにこのURLは何がしたいかによって変わるのでこちらを参照してください。
Qiita API

そして次にcurl_set_opt()でオプションの設定です。
オプションとはなんだ?って方はまたもやこちらを参考にしてください。
オプション一覧

ここで使っているオプションの説明だけします。
・CURLOPT_CUSTOMREQUEST⇨HTTPリクエストの方法を指定します。GETだったりPOSTだったり。
・CURLOPT_RETURNTRANSFER⇨curl_exec()の値をデータで返すのか、文字列で返すのかの指定です。trueなら文字列で返します。
・CURLOPT_HTTPHEADER⇨ 任意でHTTPヘッダーを設定できます。簡単にいうとサーバーにリクエストする際の情報をこちらで追加できるみたいな感じですかね。

後はcurl_seopt_array()で配列に格納。
実行したものを$resultに代入。
このとき$resultはjsonファイルになっているのでjson_decode()でPHPの型にして返します。

それをforeachでぶん回します。

取得したいものはQiit APIで確認してみてください。

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
What you can do with signing up
6