Tutorial Android – Integração com Facebook
O 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’
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.)
Clique 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’.
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.
Por fim, vá até o https://developers.facebook.com/settings/developer/sample-app/
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.
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.
Abra o arquivo strings.xml
na pasta res/values
. Você precisará de uma app_id
contendo a ID obtida no passo anterior.
Em seguida abra o AndroidManifest.xml
e adicione a permissão ‘Uses Permission’ android.permission.INTERNET.
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.
Por fim adicione uma nova activity, com o nome: com.facebook.LoginActivity.
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.
Opa, tchê eu fiz os passo a passo como esta no tuto, mas não aparece meu nome, só o Hello Word… Sabe o que pode ser? Vlw e parabéns pelo tuto!
Boa noite,fiz tudo certo,porém o app não abre!
Coloque seu passo a passo aqui pra acompanharmos