質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2929閲覧

Google App ScriptでLiff.initできない

sawadai

総合スコア17

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/05/27 14:25

前提・実現したいこと

GASでliffアプリを作ろうと思っています。ロード終了後にHTML内に記述しているJavaScriptのonLoadメソッドでliff.initをしているのですが、以下のようなエラーメッセージが出てしまい、ユーザーのプロフィール情報を取得することができません。

発生している問題・エラーメッセージ

Error getting profile: Error: Need access_token for api call, Please login first

該当のソースコード

javascript

1window.onload = function () { 2/*変数定義など(中略)*/ 3 4username = ''; 5 6liff.init( { liffId: '**************' } ).then( function(){ 7 getProfile(); 8 var accessToken = liff.getAccessToken(); 9 console.log(accessToken); 10 console.log("liffinit is called!?"); 11 }).catch( function( err ){ 12 alert( JSON.stringify( err ) ); 13 console.log("liffinit error is called!"); 14 }); 15} 16 17function getProfile(){ 18 // https://developers.line.me/ja/reference/liff/#liffgetprofile() 19 liff.getProfile().then(function (profile) { 20 userid = profile.userId; 21 username = profile.displayName; 22 23 }).catch(function (error) { 24 window.alert("Error getting profile: " + error); 25 }); 26}

試したこと

LINEデベロッパーのドキュメントを見たりしましたが、解決方法が検討もつかない状況です。そもそもGASでliffアプリを作ること自体無理な話なのでしょうか?以前Node.jsで同じようなサービスを作ったことはあるので、そのようなことを考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

気になっていましたが、回答がなかなかつきませんね。
お役に立てるか分かりませんが、当方で調べてみて気になったところだけ。

まず出ているエラーを翻訳すると

API呼び出しにはaccess_tokenが必要です、最初にログインしてください

ですね。
LINEデベロッパーのドキュメントを見ると、LIFF SDKがアクセストークンを取得するタイミングとして
LIFFアプリでliff.login()を呼び出すように指示があります。
提示いただいたソースには記載がありませんが、必要ないでしょうか。
実際にLINEで作ったことがないので予測になりますが・・・

投稿2020/06/04 08:57

mkk

総合スコア378

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sawadai

2020/06/04 10:04

ご回答いただきあろがとうございます。結局エラーを解消することはできず、Node.jsとherokuを使って開発を終了しました。GASは無料でサーバーレスだからいいのですが、同じようなことをしている人も少ないので、とても苦労しました。 <<<LINEデベロッパーのドキュメントを見ると、LIFF SDKがアクセストークンを取得するタイミングとして LIFFアプリでliff.login()を呼び出すように指示があります。>>> Node.jsの SDKを使って作るのと、普通のliffSDKを使って作るのでは、ログイン時の処理が違うんですかね、、、解決はしていませんが、気に留めていただいたこと、ありがたいと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問