1

現在、Androidアプリケーションを開発中で、Facebookログインを開始しています。私が次にやろうとしているのは、Amazon AWSのリレーションデータベースサービスにユーザ情報を保存することです。私はAmazonでインスタンスを設定しており、以前のリサーチでは、ユーザ情報を保存するためにユーザプールを作成する必要があるという印象を受けていますが、私はこれが当てはまるとは確信していません。一度設定したユーザープールを実際に使用する方法。私はまた、Cognitoの同期を使用することができますが、再びAndroid上でFacebookとこれを統合することは私がやっていることを知っているか、それを行うためのリソースや情報をオンラインで見つけることはできません。ユーザーがFacebook経由でログインしたら、名前とメールを保存して友人のリストにアクセスしたいと思います。私は、彼らが必要とすることができると考えているように私は私のBuild.app Gradleのファイルに次の追加したFacebookのAmazon AWSを使用してリレーショナルデータベースにユーザー情報を格納する方法

if(AccessToken.getCurrentAccessToken() != null){ 
     RequestData(); 
     share.setVisibility(View.VISIBLE); 
     details.setVisibility(View.VISIBLE); 
     destinations.setVisibility(View.VISIBLE); 
    } 

    login.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      if(AccessToken.getCurrentAccessToken() != null) { 
       share.setVisibility(View.INVISIBLE); 
       details.setVisibility(View.INVISIBLE); 
       destinations.setVisibility(View.INVISIBLE); 
       profile.setProfileId(null); 
      } 
     } 
    }); 

    share.setOnClickListener(
      new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      ShareLinkContent content = new ShareLinkContent.Builder().build(); 
      shareDialog.show(content); 

     } 
    }); 

    destinations.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
       Intent intent = new Intent(MainActivity.this, SelectDestination.class); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(intent); 

     } 
    }); 

    login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 

     @Override 
     public void onSuccess(LoginResult loginResult) { 

      Intent intent = new Intent(MainActivity.this, SelectDestination.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 

      if(AccessToken.getCurrentAccessToken() != null){ 
       RequestData(); 
       share.setVisibility(View.VISIBLE); 
       details.setVisibility(View.VISIBLE); 
       destinations.setVisibility(View.VISIBLE); 
      } 
     } 

     @Override 
     public void onCancel() { 
      System.out.println("Cancelled"); 
     } 

     @Override 
     public void onError(FacebookException exception) { 
      System.out.println("Cancelled"); 
     } 
    }); 

} 
public void RequestData(){ 
    GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 
     @Override 
     public void onCompleted(JSONObject object,GraphResponse response) { 

      JSONObject json = response.getJSONObject(); 
      try { 
       if(json != null){ 
        String text = "<b>Name :</b> "+json.getString("name")+"<br><br><b>Email :</b> "+json.getString("email")+"<br><br><b>Profile link :</b> "+json.getString("link"); 
        details_txt.setText(Html.fromHtml(text)); 
        profile.setProfileId(json.getString("id")); 
       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "id,name,link,email,picture"); 
    request.setParameters(parameters); 
    request.executeAsync(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

私の次のコードは、私のFacebookのlogin.javaファイルの主要部分を示し

compile 'com.amazonaws:aws-android-sdk-ec2:2.+' 
compile 'com.amazonaws:aws-android-sdk-core:2.+' 
compile 'com.amazonaws:aws-android-sdk-cognito:2.+' 
compile 'com.amazonaws:aws-android-sdk-s3:2.+' 
compile 'com.amazonaws:aws-android-sdk-ddb:2.+' 
compile 'com.amazonaws:aws-android-sdk-sdb:2.+' 

私もAndroidManifestxmlに次の依存関係を追加しました:

<dependencies> 
    <dependency> 
     <groupid>com.amazonaws</groupid> 
     <artifactid>aws-android-sdk-core</artifactid> 
     <version>[2.2.0, 2.3)</version> 
    </dependency> 
    <dependency> 
     <groupid>com.amazonaws</groupid> 
     <artifactid>aws-android-sdk-cognito</artifactid> 
     <version>[2.2.0, 2.3)</version> 
    </dependency> 
    <dependency> 
     <groupid>com.amazonaws</groupid> 
     <artifactid>aws-android-sdk-mobileanalytics</artifactid> 
     <version>[2.2.0, 2.3)</version> 
    </dependency> 
    <dependency> 
     <groupid>com.amazonaws</groupid> 
     <artifactid>aws-android-sdk-sqs</artifactid> 
     <version>[2.2.0, 2.3)</version> 
    </dependency> 
    <dependency> 
     <groupid>com.amazonaws</groupid> 
     <artifactid>aws-android-sdk-ec2</artifactid> 
     <version>[2.2.0, 2.3)</version> 
    </dependency> 
    <dependency> 
     <groupid>com.amazonaws</groupid> 
     <artifactid>aws-android-sdk-s3</artifactid> 
     <version>[2.2.0, 2.3)</version> 
    </dependency> 
</dependencies> 

ことができます誰にも機能をどうやって行うのかに関する情報を提供してください。それは私のアプリの主要な部分であり、本当に私を抱きしめています。私は本当にそれがすべてのヘルプに感謝します。

ありがとうございます。

答えて

0

アンドロイドから直接リレーショナルデータベースサービスにアクセスすることはできません。 rdsと対話してクエリ出力に応答するには、何らかの種類のWebサーバーまたはラムダ関数が必要です。

あなたはここにhttp://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html

あなたは、あなたが作成したラムダ関数を呼び出すためにAndroid用AWS SDKを使用することができることを行う方法についての詳細な情報を見つけることができます。

+0

これは、登録/ログインではなくFacebookのログインを介してどうやって行われますか? – User10

+0

あなたのIDプロバイダとしてfacebookでCognito IDを使用して、一時的な認証情報を生成できます。これらの一時的な資格情報を使用して、sdk経由でラムダ機能を呼び出すことができます。 – Karthik

関連する問題