こんにちは、オフィス狛 モバイル開発担当 Aika-yuy です。
今回の投稿は、iOSアプリから AmazonConnectとLambdaで任意の番号に電話をかける方法をご紹介します。
前回までのLambdaからAmazon Connectで電話をかける方法です
①Amazon Connectで電話番号、お問い合わせフローの作成
②IAMでロールを作成
③Lambda関数の作成
④実行!!
②IAMでロールを作成
③Lambda関数の作成
④実行!!
今回の手順
①Amazon CognitoでiOSアプリからアクセス権限を作成②CognitoのロールにLambdaのアクセス権限を追加
③iOSアプリにCognitoとLambda呼び出しの設定
①Amazon CognitoでiOSアプリからアクセス権限を作成
・TOP画面からCognitoを検索して選択
・Identity Poolを作成します
・新しいIDプールの作成
・任意の名前をつける
・認証なしのユーザーを許可にチェックして作成
・許可を押すと自動でロールが作成されます
・サンプルコードをコピーします(後ほどAppDelegateに貼り付け)
②CognitoのロールにLambdaのアクセス権限を追加
・IAMに移動します
・サイドメニューのロールを選択
・先ほど自動作成されたロールが一覧に表示されています
・Unauthの方をクリックして下さい
・インラインポリシーの追加を押して下さい
・サービスはLambdaを選択
・アクションはInvokeFunctionにチェックを入れて下さい
・ポリシーの確認ボタンを押します
・ARNの追加で以前に作った、LambdaFunctionのARNをペーストして下さい
・任意の名前をつけ、ポリシーの作成ボタンを押して下さい
・ポリシーが追加されていれば、完了です
・次はiOSアプリを作成していきます
③iOSアプリにCognitoとLambda呼び出しの設定
・今回は以下をpod installしました
pod 'AWSMobileClient', '~> 2.6.13' # For AWSMobileClient pod 'AWSCognito' pod 'AWSLambda'
AppDelegateに先ほどのサンプルコードをそのまま貼り付けます
import AWSCognito//インポートを忘れずに @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.APNortheast1,identityPoolId:"identityPoolId") let configuration = AWSServiceConfiguration(region:.APNortheast1, credentialsProvider:credentialsProvider) AWSServiceManager.default().defaultServiceConfiguration = configuration return true }
viewControllerにボタンを押したらLambdaFunctionを叩くようにします
import AWSLambda//インポートを忘れずに class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } @IBAction func callButtanTapped(_ sender: Any) { let lambdaInvoker = AWSLambdaInvoker.default() lambdaInvoker.invokeFunction("testCall", jsonObject: nil).continueWith(block: {(task:AWSTask) -> Any? in if let error = task.error { print("Error: \(error)") return nil } return nil }) } }
0 件のコメント:
コメントを投稿