fmOAuth(0.0.2)に、OAuth認証(Google)に任意のアプリを利用できる機能を実装しています

こんにちは。
株式会社フルーデンスの小巻旭洋です。

タイトルからは少し分かりづらいかもしれませんが、同意画面を fmOAuth ではなく、任意のアプリに置き換えることができるように実装しています。

ということで、自分のGoogleアカウントでコンソールにログインし、アプリを作成してもらい、引数を渡していただければ利用できます。

自分のアプリを作成する方法は、別で記事を書きます。

fmOAuthの同意画面

デフォルトでは、以下のような同意画面です。

fmoauth-002-google-oauth-application1

任意のアプリの同意画面

コンソールでアプリを作成し、アプリの情報をスクリプト引数で渡すと、以下のような同意画面になります。

fmoauth-002-google-oauth-application2

スクリプト(画像)

fmoauth-002-google-oauth-application3

スクリプト(コード)

# 
# ──────────────────── Parameter
# 
# case fmOAuth
# 
If [ True // fmOAuth ] 
	テキストを挿入 [ 選択 ; $scopeList ; 「https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/drive https://mail.google.com/」 ] 
	変数を設定 [ $param ; 値: JSONSetElement (  "{}" ;  [ "scopeList" ; $scopeList ; JSONString ] ) ] 
End If
# 
# case Your Google App
# 
If [ False // Set CustomFunction from Your Google App Information ] 
	変数を設定 [ $appId ; 値: z_yourGoogleAppId ] 
	変数を設定 [ $secret ; 値: z_yourGoogleAppSecret ] 
	変数を設定 [ $redirect ; 値: z_yourGoogleAppRedirect ] 
	テキストを挿入 [ 選択 ; $scopeList ; 「https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/drive https://mail.google.com/」 ] 
	変数を設定 [ $param ; 値: JSONSetElement (  "{}" ;  [ "appId" ; $appId ; JSONString ] ;  [ "secret" ; $secret ; JSONString ] ;  [ "redirect" ; $redirect ; JSONString ] ;  [ "scopeList" ; $scopeList ; JSONString ] ) ] 
End If
# 
# ──────────────────── Perform Script
# 
スクリプト実行 [ 「0307.Get Refresh Token Google ( appId ; secret ; redirect ; scopeList )」 , ファイル: 「fmoauth」 ; 引数: $param ]
# 
# ──────────────────── Response Data
# 
If [ IsEmpty ( FilterValues ( JSONListKeys ( Get ( スクリプトの結果 ) ; "" ) ; "refresh_token" ) ) ] 
	# error
	フィールド設定 [ USER::googleRefreshToken ; Get ( スクリプトの結果 ) ] 
Else
	# ok
	フィールド設定 [ USER::googleRefreshToken ; JSONGetElement ( Get ( スクリプトの結果 ) ; "refresh_token" ) ] 
End If
# 

当時勤めていた会社で FileMaker プラットフォームと出会い、インハウス開発者としてカスタムAppの開発を行う。2014年からフリーランスとして活動し、2016年に株式会社フルーデンスを設立する。最近は「URL から挿入」を使って、様々なサービスとAPI連携したり、Amazon DynamoDBやAWS Lambdaを使って開発をしています!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください