LINE@ Messaging API でアクセストークンを取得 【Javascript , PHP】

スポンサーリンク

LINE Messaging API アクセストークン取得

LINE Developers news で長期間有効なチャネルアクセストークンが廃止されると告知がありました。チャネルアクセストークンは、LINEのMessaging APIを呼び出すのに必要な認証です。

Redirecting... | LINE Developers

長期間有効なチャネルアクセストークンは、実質いつまでも有効なトークンで一度発行してしまえばずっと使い回せるのですが、これが廃止されるということでアクセストークンを定期的に取得する必要が出てきました。

(※9/27のdeveloper newsで、長期間有効なチャネルアクセストークンの廃止が延期されることが発表されました。11月に廃止される予定でしたが、とりあえずまだ使えるようです。)

PHPでアクセストークンを取得

PHPでアクセストークンを取得するコード例は下記です。

//リクエスト先URL
const API_URL = "https://api.line.me/v2/oauth/accessToken";

$data = array(
    'grant_type' => 'client_credentials',
    'client_id' => CHANNEL_ID,
    'client_secret' => SECRET,
);
$header = array(
    "Content-Type: application/x-www-form-urlencoded",
);
$options = array('http' => array(
    'method' => 'POST',
    'header'  => implode("\r\n", $header),
    'content' => http_build_query($data)
));

$response = file_get_contents(
    API_URL,
    false,
    stream_context_create($options)
);

//レスポンスのjsonからtokenを取得
$access_token = json_decode($response)->access_token;

CHANNEL_IDにはアカウントの基本情報にあるChannel ID、SECRETにはChannel Secretを指定します。これらはLINE Developersの管理画面で確認できます。

line developer

Javascriptでアクセストークンを取得

Javascriptでアクセストークンを取得するコード例は下記です。

//リクエスト先URL
const API_URL = 'https://api.line.me/v2/oauth/accessToken'

const BODY = 'grant_type=client_credentials&'
  + 'client_id=' + CHANNEL_ID
  + '&client_secret=' + SECRET

const options = {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  body: BODY,
}

fetch(API_URL, options)
  .then(response => {
    response.json()
      .then(json => {
        //jsonを取得
        let access_token = json.access_token
      })
  })

ただしJavascriptで画面側からリクエストを送る場合、クロスドメイン制約を回避する必要があります。サーバ側でプロキシの設定等でクロスドメイン回避ができる場合のみ使用できます。

普通にリクエストを送ると、No ‘Access-Control-Allow-Origin’ と言われて取得できないので注意です。返ってくるjsonは下のような形です。

{
  "access_token": "W1TeHCgfH2Liwa.....",
  "expires_in": 2592000,
  "token_type": "Bearer"
}

取得したトークンの有効期間は30日間です。

トークン取得APIについて、詳しくは下記のMessagin APIリファレンスを参照してください。

Messaging APIリファレンス
LINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、...

未経験、異業種からIT業界に転身。フロントエンジニア。主にJavascript(React.js)をつかったWEBアプリ開発にたずさわる。
お問い合わせ、ご相談など → genpsp10@gmail.com

psp7をフォロー
プログラミング
スポンサーリンク
シェアする
psp7をフォロー

コメント