AndroidIntegration
Contents |
Descrição
Esse é um pequeno tutorial mostrando como integrar um app Android com o Social Login para alimentar o Marketing Database com seus usuários. A integração é feita através do socialauth-android, uma biblioteca de código aberto que implementa o login das redes sociais em dispositivos móveis que rodam o sistema Android.
Passo 1 - Baixar socialauth-android e usar uma example app como base
O arquivo JAR do socialauth-android e projetos de exemplo prontos para serem importados no Eclipse podem ser encontrados no link abaixo:
http://code.google.com/p/socialauth-android/downloads/list
Passo 2 - Alterar assets/oauth_consumer.properties
O conteúdo desse arquivo deve refletir as configurações de chave e tokens de segurança dos aplicativos que você criou para cada uma das redes sociais que você pretende usar. Exemplo:
#twitter twitter.com.consumer_key = mFST2xmcaiXBROO0c1UUKQ twitter.com.consumer_secret = qMSGb1Fk2u5wMoDXrMWZZdl8EBnMvMrtAT8MEgxjVtc #facebook graph.facebook.com.consumer_key = 214491898518165 graph.facebook.com.consumer_secret = eeaceca77639cbda92de982615a1f7dd graph.facebook.com.custom_permission = publish_stream,email,user_birthday,user_location,offline_access #linkedin api.linkedin.com.consumer_key = 71jkzd1t35kh api.linkedin.com.consumer_secret = J4y0VwBfeJBNspJQ
Passo 3: Fazer requisição para o Social Login após fazer login em uma rede social
Na classe que você implementar a interface DialogListener, use o seguinte código no método onComplete(Bundle values) alterando as 3 primeiras variáveis para os valores da sua aplicação (appId, apiId, apiSecret). Exemplo:
private final class ResponseListener implements DialogListener { @Override public void onComplete(Bundle values) { // Hardcoded data final String appId = "234"; final String apiId = "565"; final String apiSecret = "e27b8dba2b04f4dc0ef5d22a5772281f1d741705ecab59fc5e4eb9e1a82fa4a2"; // Get name of provider after authentication final String providerName = values.getString(SocialAuthAdapter.PROVIDER); Log.d("SIDN", "Provider Name = " + providerName); // Social-ID Now POST URL final String sidnPostUrl = "https://api.socialidnow.com/v1/marketing/login/apps/"+appId+"/sign_ins/"+providerName; // Social-ID Now request parameters String accessToken = ""; String accessSecret = ""; accessToken = MainActivity.this.context.adapter.getCurrentProvider().getAccessGrant().getKey(); Log.d("SIDN", accessToken); accessSecret = MainActivity.this.context.adapter.getCurrentProvider().getAccessGrant().getSecret(); if(accessSecret == null) accessSecret = ""; Log.d("SIDN", accessSecret); RequestParams params = new RequestParams(); params.put("app_id", appId); params.put("access_token", accessToken); params.put("access_secret", accessSecret); // Make request AsyncHttpClient client = new AsyncHttpClient(); client.setBasicAuth(apiId, apiSecret); client.post(sidnPostUrl, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { Log.d("SIDN", response); } @Override public void onFailure(Throwable e, String response) { Log.d("SIDN", response); } }); } }