Q&A

Typescriptでliff.init()できない

シナリオ1 ーーーーーーーーーーーーー 試したいことは ユーザがボットのQRコード読み込むとユーザ情報を取得してボットにリダイレクトしたい。

試したことは liffアプリ作成して、エンドポイントURLに「ボットのURL + パラメーター」を入れて新しいQRコードを作成しました。そのQRコードを読み込んでliff_stateでパラメーターを取得しました。その後ボットにリダイレクトします。この流れは問題ないです。問題はユーザ情報が取得できないことです。

シナリオ2 ーーーーーーーーーーーーー node.jsでliff.init()しようとするとエラーになります。

試したことは 1.npm install @line/liff 2.import liff from '@line/liff';

const liffId = 'xxxxxxxxxx-xxxxxxxx'; await liff.init({ liffId: liffId }) .then(() => { if (liff.isLoggedIn()) { liff.getProfile(); } else { liff.login(); } }) .catch((err) => { console.log(err); })

以上のコードで思ってることはできますか?シナリオ1で試したことを2回リダイレクトして間にシナリオ2を挟もうと考えています。 以上の件についてお勧めの方法はありますでしょうか?間違えていれば教えて頂けますでしょうか? よろしくお願いいたします。

  • 0
  • 4
  • 3341
  • twitter facebook

バックエンドで行っていた処理をフロントエンドで行うと解決できました。

  • 0

問題になっていたところ見つかりました。 node_modules@line\liff\dist\lib\index.jsファイルにあるwindowは使えないからです。 node.jsでwindowは使えないのでエラーになっています。 でも、解決方法は分かりません。

  • 0

#Mofyさん回答ありがとうございます。 問題はそこじゃないと思います。promise object を返却しています。全部書いてなかったので申し訳ございません。

  • 0

liff.init は promise object を返却します。then/catch の処理が無いようです。

  • 1
Are you sure? question.vm