Tutorial Android – Integração com Facebook

On 6 de abril de 2014 by Iury Souza

imagesO foco desse tutorial será a criação de um app com integração com a API do Facebook. O objetivo é usar o login e o sistema de autenticação do facebook para recuperar informações do usuário e mostrá-las na aplicação android.

Primeiro Passo – Download da Facebook SDK
Ao usar a facebook SDK, temos suporte para fazer login com autenticação pelo facebook, ler e escrever na API, além de suporte para os elementos de interface. Basicamente é a maneira mais fácil de integrar sua aplicação com a plataforma do Facebook.

Dito isso, mãos a obra!
Pra começar, acesse o https://developers.facebook.com/resources/facebook-android-sdk-current.zip e faça o download da versão mais recente da Facebook SDK. Extraia o arquivo .zip.

Segundo Passo – Importando a SDK para o Eclipse.

Com o Eclipse aberto, vá em ‘File’->’Import’, selecione ‘General’ e em seguida ‘Existing Projects into Workspace’

#1

Procure pelo local onde o .zip foi extraído. Junto da SDK, você terá a opção de importar diversas amostras, elas são exemplos de como usar a SDK, mas não é necessário importa-las. Deixe a opção ‘Copy projects into workspace’ desmarcada. Assim, o Eclipse fará uma referência ao projeto na instalação da SDK ao invés de fazer uma cópia da mesma.  Isso facilitará, caso queira atualizar a SDK posteriormente.
(Obs.: Alguns conflitos podem ocorrer caso a SDK seja colocada fora do workspace, caso aconteça com você, tente colocá-la dentro do workspace e refaça os passos.)
#2Clique em next e os projetos serão importados. É possível que você encontre alguns erros. Calma! Pra resolver, simplesmente clique no menu ‘Project’->’Clean’->’Clean All Projects’.

:#3 #4 #5

Feito isso, já é possível executar as aplicações mais simples, exceto as que involvem autenticação. Para tal, é necessário uma Android Key Hash para o Facebook.

Terceiro Passo – Configurando a chave de autenticação do Facebook

No windows execute o comando: keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64. Quando pedido, use a senha: “android”. Verifique se o seu ‘path’ está configurado corretamente e se você tem a debug.keystore.
#6
Por fim, vá até o https://developers.facebook.com/settings/developer/sample-app/#7

Quarto Passo – Criando uma Facebook App

Volte até o App Dashboard https://developers.facebook.com/apps e clique em “Create New App”, guarde o  o “App ID”, ele será necessário em breve. Em seguida, vá em “Settings”, e clique em “Add Platform” e selecione “Android”. Preecha com a informação necessária e não se esqueça de adicionar a debug key hash que você obteve previamente.

#9

Quinto Passo – Criando um Projeto com Login com Facebook

Crie uma novo “Android Aplication Project” no Eclipse, “File”->”New”->”Project” e selecione “Android Aplication Project”. Mantenha todas as outras configurações default. Em seguida, clique com o botão direito no nome do projeto e vá “Properties”->”Android”->”Add” e selecione a FacebookSDK.#10#11

Abra o arquivo strings.xml na pasta res/values. Você precisará de uma app_id contendo a ID obtida no passo anterior. #12

Em seguida abra o  AndroidManifest.xml e adicione a permissão ‘Uses Permission’  android.permission.INTERNET.#13

Ainda no Manifest, vá na aba “Application” e adicione um item de “Meta Data” com o nome:  com.facebook.sdk.ApplicationId, com o value:  app_id string que você acabou de configurar.

#14

Por fim adicione uma nova activity, com o nome: com.facebook.LoginActivity.

#15

Agora, abra o arquivo activity_main.xml na pasta res/layout

E adicione uma TextView com os seguintes atributos

<TextView
android:id=”@+id/welcome”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”TextView” />

Sexto Passo – Código!

A primeira coisa a fazer, é colocar os imports. Em seguida é necessário fazer o uso da classe “Sessions” que gerencia a maior parte do processo de autenticação e de autorização de usuários. No fim do método onCreate() o método Session.openActiveSession() inicia o login com o Facebook. Em seguida verificamos se a session está aberta, caso esteja, podemos fazer um pedido para o /me da Facebook Graph API e finalmente recuperar a informação do usuário. Feito isso, podemos substituir a TextView label com o nome do usuário.
O código final fica assim:

[sourcecode language=”java”]
<code>package com.firstandroidapp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import com.facebook.*;
import com.facebook.model.*;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {

// callback quando a session muda de state
@Override
public void call(Session session, SessionState state, Exception exception){
if (session.isOpened()) {

// faz pedido na /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback(){

// callback depois que a Graph API responde com um user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello " + user.getName() + "!");
}
}
});
}
}
});
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}

}
</code></pre>
[/sourcecode]

Agora, é só executar o projeto. O resultado deverá ser algo como mostrado abaixo. A Facebook API vai pedir acesso as informações públicas do usuário e mostrará no TextView o nome do usuário.
#16

3 Responses to “Tutorial Android – Integração com Facebook”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *