反応+タイプスクリプトを使ってリフを作る
17336 ワード
Reactjs +タイプスクリプトでリフアプリを試したときのメモです.
コードは以下のリポジトリにあります.
このプロジェクトはブートしたCreate React App .
プロジェクトディレクトリで実行できます.
開発モードでアプリケーションを実行します.
オープンhttp://localhost:3000 ブラウザで表示するには.
あなたが編集をするならば、ページは再ロードされます.
コンソール内のlintエラーも表示されます.
インタラクティブウォッチモードでテストランナーを起動します.
詳しくはrunning tests を参照してください.
生産のためのアプリケーションをビルドします
それは正しく束が生産モードで反応し、最適なパフォーマンスのためのビルドを最適化します.
ビルドはミニ化され、ファイル名はハッシュを含みます.
あなたのアプリケーションを展開する準備が整いました!
詳しくはdeployment を参照してください.
注意:これは一方向操作です.一度
ビルドツールや設定に満足していない場合.
View on GitHub
https://developers.line.biz/ja/docs/liff/overview/
https://ja.reactjs.org/tutorial/tutorial.html#setup-option-2-local-development-environment
https://create-react-app.dev/docs/adding-typescript/
リアクターズのチュートリアルにあるとおりReactAppを生成するコマンドを実行する
今回はタイプスクリプトを使用するのでオプションに追加しておきます.
https://developers.line.biz/console/ にアクセスします.
プロバイダーがなければ、新規でプロバイダーを作成します. LINE DEV の記事を確認しながら進めてください.
プロバイダーができたらそれを選択し、新規チャネルを作成します.このときのチャネルの種類は
選択したら必須項目を入力する.アプリタイプは
チャネルを作成し終えたらリフのページから追加をクリックしてリフを作成します.
リフアプリを追加のページになったら必要な情報を入力します.ローカル環境でリフを試すときは 農業技術研究機構などを駆使します.
https://ngrok.com/
スコープは必要なほうを選択します.(LINEログインをがっつり使うとかなければ プロフィールのみでよいと思います)
リフからメッセージを送信する必要があるときは すべてを表示 をクリックして展開して メッセージ.執筆にもチェックを付けます.
リフを作成したら リフIDをリフURLが生成されたのを確認します.
このIDやURLはあとで使用します.
ライン公式の国立天文台パッケージがあるので追加しておきます.
https://www.npmjs.com/package/@line/liff
パソコンブラウザではリフではないのでボタンをクリックしてもなにも反応がないはずです.(エラーにはなります)
リフの詳しいAPIリファレンスはライン公式のものを参照してください.
https://developers.line.biz/ja/reference/liff/
ローカルの農業技術研究機構で試す場合は環境変数(上記コードで言う
どこかのサーバにデプロイするときであっても同様です.
ベセルを使用するとかなり手軽にデプロイできて試せます.
https://vercel.com
環境変数などがセット完了し、サーバデプロイなどが終わったら リフURLをてきとーなトークルームに送信します.ひとりだけのトークルームを使うと誰にも迷惑をかけずに試せます.
このリンクをタップしたらリフが立ち上がるはずです.
許可したあとにもう一度
ここまでできたら、あとはいろいろAPIを試してみたりするだけです.
コードは以下のリポジトリにあります.
湯田本 / リフサンプル
このプロジェクトはブートしたCreate React App .
利用可能なスクリプト
プロジェクトディレクトリで実行できます.
糸開始
開発モードでアプリケーションを実行します.
オープンhttp://localhost:3000 ブラウザで表示するには.
あなたが編集をするならば、ページは再ロードされます.
コンソール内のlintエラーも表示されます.
糸試験
インタラクティブウォッチモードでテストランナーを起動します.
詳しくはrunning tests を参照してください.
糸造り
生産のためのアプリケーションをビルドします
build
フォルダ.それは正しく束が生産モードで反応し、最適なパフォーマンスのためのビルドを最適化します.
ビルドはミニ化され、ファイル名はハッシュを含みます.
あなたのアプリケーションを展開する準備が整いました!
詳しくはdeployment を参照してください.
糸抜き
注意:これは一方向操作です.一度
eject
, あなたは戻って行くことはできません!ビルドツールや設定に満足していない場合.
View on GitHub
リフとは
https://developers.line.biz/ja/docs/liff/overview/
LINE Front-end Framework(LIFF)は、LINEが提供するウェブアプリのプラットフォームです。このプラットフォームで動作するウェブアプリを、LIFFアプリと呼びます。
環境
node: v14.5.0
npx: 6.4.1
npm: 6.14.6
yarn: 1.22.4
バージョンを揃えなくとも動くと思います.反応アプリをつくる
https://ja.reactjs.org/tutorial/tutorial.html#setup-option-2-local-development-environment
https://create-react-app.dev/docs/adding-typescript/
リアクターズのチュートリアルにあるとおりReactAppを生成するコマンドを実行する
今回はタイプスクリプトを使用するのでオプションに追加しておきます.
npx create-react-app liff-sample --template typescript
一通り生成できたら動作するかどうかを確認します.cd liff-sample
yarn start
http://localhost:3000
にアクセスして以下のようなページが表示されたらよろしい.リフのセットアップ
チャネルの準備
https://developers.line.biz/console/ にアクセスします.
プロバイダーがなければ、新規でプロバイダーを作成します. LINE DEV の記事を確認しながら進めてください.
プロバイダーができたらそれを選択し、新規チャネルを作成します.このときのチャネルの種類は
LINEログイン
を選択します.選択したら必須項目を入力する.アプリタイプは
ウェブアプリ
を選択します.リフの準備
チャネルを作成し終えたらリフのページから追加をクリックしてリフを作成します.
リフアプリを追加のページになったら必要な情報を入力します.ローカル環境でリフを試すときは 農業技術研究機構などを駆使します.
https://ngrok.com/
スコープは必要なほうを選択します.(LINEログインをがっつり使うとかなければ プロフィールのみでよいと思います)
リフからメッセージを送信する必要があるときは すべてを表示 をクリックして展開して メッセージ.執筆にもチェックを付けます.
リフを作成したら リフIDをリフURLが生成されたのを確認します.
このIDやURLはあとで使用します.
ReactAppに埋め込む
ライブラリインストール
ライン公式の国立天文台パッケージがあるので追加しておきます.
https://www.npmjs.com/package/@line/liff
yarn add @line/liff
コードの編集
App.tsx
を編集します.import React from 'react';
import liff from '@line/liff'; // 追加
import logo from './logo.svg';
import './App.css';
function App() {
/* 追加: メッセージ送信 */
const sendMessage = () => {
liff.init({liffId: process.env.REACT_APP_LIFF_ID as string}) // LIFF IDをセットする
.then(() => {
if (!liff.isLoggedIn()) {
liff.login({}) // ログインしていなければ最初にログインする
} else if (liff.isInClient()) { // LIFFので動いているのであれば
liff.sendMessages([{ // メッセージを送信する
'type': 'text',
'text': "You've successfully sent a message! Hooray!"
}]).then(function() {
window.alert('Message sent');
}).catch(function(error) {
window.alert('Error sending message: ' + error);
});
}
})
}
/* 追加: UserProfileをAlertで表示 */
const getUserInfo = () => {
liff.init({liffId: process.env.REACT_APP_LIFF_ID as string})
.then(() => {
if (!liff.isLoggedIn()) {
liff.login({}) // ログインしていなければ最初にログインする
} else if (liff.isInClient()) {
liff.getProfile() // ユーザ情報を取得する
.then(profile => {
const userId: string = profile.userId
const displayName: string = profile.displayName
alert(`Name: ${displayName}, userId: ${userId}`)
}).catch(function(error) {
window.alert('Error sending message: ' + error);
});
}
})
}
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
<button className="button" onClick={sendMessage}>send message</button> // 追加
<button className="button" onClick={getUserInfo}>show user info</button> // 追加
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
上記のコード編集とCSSの編集し再度アクセスすると以下のようになるはずです.パソコンブラウザではリフではないのでボタンをクリックしてもなにも反応がないはずです.(エラーにはなります)
リフの詳しいAPIリファレンスはライン公式のものを参照してください.
https://developers.line.biz/ja/reference/liff/
ライン上でリフを試す。
ローカルの農業技術研究機構で試す場合は環境変数(上記コードで言う
REACT_APP_LIFF_ID
)に値をセットします.どこかのサーバにデプロイするときであっても同様です.
ベセルを使用するとかなり手軽にデプロイできて試せます.
https://vercel.com
環境変数などがセット完了し、サーバデプロイなどが終わったら リフURLをてきとーなトークルームに送信します.ひとりだけのトークルームを使うと誰にも迷惑をかけずに試せます.
このリンクをタップしたらリフが立ち上がるはずです.
send message
をタップすると、最初にもろもろ許可してOKかどうかのページが表示されます.許可したあとにもう一度
send message
をタップすると、そのトークルームにメッセージが送信されます.show user info
をタップすると、自身のユーザ名とユーザIDが表示されます.ここまでできたら、あとはいろいろAPIを試してみたりするだけです.
Reference
この問題について(反応+タイプスクリプトを使ってリフを作る), 我々は、より多くの情報をここで見つけました https://dev.to/yutagoto/react-typescript-liff-1kpkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol