AngularJS、Firebase(SDK v3)、GoogleカレンダーAPIを使用してWebアプリケーションを構築しています。私はGoogle OAuthを使用しているユーザーを認証しています。私の目的は、Firebaseのデータベースノードからカレンダーイベントを作成できるようにすることです。しかし、それはのように思えるFirebase Authを使用してGoogle Calendar APIにアクセスする
_fbAuthObject.getRedirectResult()
.then(function _readToken(result) {
if (result.credential) {
_googleToken = result.credential.accessToken;
var authHeader = 'Bearer '+ _googleToken;
// Just a test call to the api, returns 200 OK
$http({
method: 'GET',
headers: {
'Authorization': authHeader
},
url: 'https://www.googleapis.com/calendar/v3/users/me/calendarList/primary'
})
.then(function success(response) {
console.log('Cal response', response);
},
function error(response) {
console.log('Error', response);
});
:認証リダイレクトがとして利用可能であるので、私はリダイレクトフローを使用して認証してい
_authProvider = new firebase.auth.GoogleAuthProvider();
// Get permission to manage Calendar
_authProvider.addScope("https://www.googleapis.com/auth/calendar");
_fbAuthObject.signInWithRedirect(_authProvider);
:これまでのところ私はカレンダーのスコープへのアクセスを要求するために管理してきました最初のログインの外では、Firebase SDKを介してGoogleのアクセストークンを取得することはできません。 Firebase JWTトークンにアクセスすることは可能ですが、Calendar APIでは使用できません。私はアクセストークンを保存することができましたが、これはトークンをリフレッシュするときに問題を解決しません。Firebase SDKで現在のGoogle Accessトークンを取得する方法はありますか?そうでない場合、ユーザーを2回認証するには?
UPDATE 1:
がsomeone else has struggled with similar problems with Facebook authenticationのように思えます。その質問にはlink to the Firebase documentationがあり、Firebase認証でアクセストークンが保持されなくなったと記載されています。トークンのリフレッシュはどのように処理できますか?これには本当に答えはありませんか?
UPDATE 2:
だから、私はこの問題についての機能要求とFirebaseサポートに連絡し、彼らは私に次のような答えた:私たちを書くためにあなたの時間を割いて
感謝を。
ここにあなたの意見があります。これは本当に良い提案です。私たちは、あなた自身のような多くのユーザーが、更新時にトークンにアクセスするOAuth機能を望むことは間違いなく知っています。私たちは潜在的な解決策を模索していますが、これがすぐに利用できるかどうかは保証できません。私たちはあなたのフィードバックを前進させることを考慮しておきます。継続的な改善は私たちのコミュニティにとって非常に重要なので、これを持ってきてくれてありがとう!
今後の更新については、リリースノートを確認してください。
だから、現時点でFirebase SDKからアクセストークンを入手できないようです。私はまだ回避策を見つけようとしているので、誰かが有効な解決策についてのアイデアを持っていれば、それを聞いてうれしいです。もちろん、自分で解決策を見つけることができれば、ここに投稿します。
私は、currentUserオブジェクトに詳細を追加する必要があると思いますが、現在のユーザーオブジェクトに何が存在するかを調べてみましたか? 'firebase.auth()。currentUser;' https://firebase.google.com/docs/auth/web/manage-users –
はい、そこからGoogleのトークンを見つけることはできません。また、getToken()関数を試しましたが、Firebase JWTトークンをGoogle APIで使用することはできません。 – RoniPa
https://stackoverflow.com/questions/49182671/is-it-possible-to-add-events-to-a-users-google-calendar-via-firebase-server-sid/49183647#49183647も参照してください。 – Kato