[TUTORIAL] Função facebook_graph_request

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[TUTORIAL] Função facebook_graph_request

Mensagem por itarodrigo em Dom 26 Jan 2014, 21:23

Título: Função facebook_graph_request
Versão do GM: GameMaker Studio
Dificuldade: Intermediário
Complemento: [TUTORIAL] Funções do Facebook, [TUTORIAL] Inclua seu jogo no Facebook
Tags: facebook, jogo online, nome usuario do facebook, informacoes do facebook

Oi pessoal,

Estarei dando continuidade aos tutoriais com relação a integração dos jogos do GMS com o Facebook.

Fiz um tutorial antes com algumas funções (link acima) e deixei essa função para depois para poder dar um exemplo melhor de como ela funciona.

Vamos primeiro a tradução do help do GMS:

facebook_graph_request(graph_path, httpMethod, ds_map_parameters, ds_map_return)
Essa função é usada para interagir com a API gráfica do Facebook

Com essa função você pode interagir com a API gráfica do Facebook. O argumento 'graph_path' é onde você define a parte da API que você deseja acessar, que pode ser a lista de amigos do usuário, outros aplicativos ou um evento qualquer. O caminho exato pode ser definido usando os termos explicados no próprio facebook. Clique aqui para ver.

Após escolher o caminho das informações que pretende usar, você deve definir o argumento 'httpMethod', que é costumeiramente usado POST ou GET, mas também o Facebook permite usar o método DELETE.


  • POST: Envia uma informação
  • GET: 'Pega' uma informação
  • DELETE: Apaga uma informação


O próximo argumento é um pouco mais complexo e ele requer que você crie e preencha um ds_map com as informações corretas que o GameMaker: Studio irá converter em json (linguagem que o Facebook entende) automaticamente quando enviar para a API do Facebook. A informação que você incluirá no ds_map irá depender muito do caminho que você escolheu pra usar e de uma completa lista de valores que pode ser encontrado nele. Exemplos no final.

Finalmente, nós temos um argumento para estocar qualquer informação que o facebook nos manda de volta. Essa informação vem na linguagem json e o GameMaker a converte em um ds_map. Para ele trabalhar corretamente, você deve ter criado um ds_map anteriormente, e se o ds_map já estiver sendo usado e conter outras informações, ele será limpo por essa função antes das novas informações serem adicionadas.

É muito importante que vocês leiam a documentação da API do Facebook, para conhecer os valores que são possíveis de obter e como exatamente você deve estar esperando recebê-lo

O Facebook tem uma página de testes onde você pode checar os diferentes caminho e ver exatamente as funções que eles retornam pra você. Página de testes do Facebook Graph API

Vamos agora ao exemplo que vem no próprio GameMaker Studio:

Evento MOUSE_LEFT_RELEASE
Código:

var wallPostMap; //Cria uma variável chamada wallPostMap
wallPostMap = ds_map_create(); //Transforma a variável em um ds_map
ds_map_add(wallPostMap, "message", "Escreva sua mensagem aqui..."); //Adiciona a chave 'message' com a mensagem que você quer
ds_map_add(wallPostMap, "picture", "http://meu_site.com/minha_imagem.jpg"); //Adiciona a chave 'picture' com o link para a imagem
ds_map_add(wallPostMap, "link", "http://meu_site.com"); //Adiciona a chave 'link' com um link para onde o usuário será redirecionado ao clicar
ds_map_add(wallPostMap, "name", "Clique aqui para abrir o link"); //Adiciona a chave 'name' que é usada para substituir o link
ds_map_add(wallPostMap, "caption", "meu_site.com - caption"); //Adiciona a chave 'caption' que é o subtítulo do link
ds_map_add(wallPostMap, "description", "Minha descrição... lbalablablabalabl albala ba lab laba albalbalba lab lab al a"); //Adiciona a chave 'description' que inclui uma descrição no post
facebook_graph_request("me/feed", "POST", wallPostMap, -1); //Envia o post ao Facebook
ds_map_destroy(wallPostMap); //Destrói o ds_map



O código acima irá criar um ds_map e armazena-lo em uma variável local chamada 'wallPostMap'. Ele então preenche o ds_map com os pares de chaves e valores que são necessários para postar uma imagem e um texto no mural do usuário atual. Finalmente, ele envia a requisição ao Facebook e apaga o ds_map da memória.

Vamos entender melhor a linha
Código:
facebook_graph_request("me/feed", "POST", wallPostMap, -1);

O primeiro argumento 'me/feed' se refere a parte da API do Facebook a ser usada, vou explicar algumas:

NomeAcesso aUse para publicar/acessar:
me/achievementsConquistas realizadas nos jogos do FacebookConquistas do seu jogo
me/albumsÁlbuns de fotos que o usuário criouNovos álbuns
me/apprequestsPedidos de aplicativos do FacebookPedidos do seu aplicativo
me/feedPosts e links publicados pelo usuário, ou por outros em seu muralPosts, links e atualizações
me/friendlisA lista de amigos do usuárioLista de amigos
me/notificationsNotificações de AplicativosNotificações
me/scoresAs potuações que o usuário recebeu nos jogosPontuações
Listei aqui apenas algumas das dezenas de possibilidades que o Facebook disponibiliza para você acessar, e ATENÇÃO: de acordo com o item requerido, você deve ter a devida permissão do usuário ao efetuar o login!

Mais informações CLIQUE AQUI

O segundo argumento 'POST' quer dizer que você está enviando uma informação, ou seja, POSTANDO uma informaçãos. Quanto ao método 'GET', vamos ver um exemplo agora:

Criem um objeto e no evento CREATE, escreva:
Código:

var controle, //Cria duas variáveis...
dados; //controle e dados

controle = 0; //Seta controle igual a zero
dados = ds_map_create(); //Transforma dados em um ds_map

No evento STEP:
Código:

If (facebook_status() == 'AUTHORISED' and controle == 0){ //Se o usuário autorizou seu aplicativo ao acesso dos dados, faz
controle = 1; //Controle é igual a um, para não ficar repetindo todo step a mesma função
facebook_graph_request("me", "GET", -1, dados); // Usa o graph_request para ter acesso ao local 'me' e gravar os dados no ds_map 'dados' que criamos anteriormente
}

Evento DRAW:
Código:
draw_text(x,y,'Primeiro nome: '+ds_map_find_value(dados, 'first_name')); //Utiliza o ds_map 'dados' para pegar o primeiro nome do usuário

Outras informações que você pode pegar usando esse método:

CampoDescriçãoTipo
birthdayData de nascimentoString no formato MM/DD/YYYY
emailE-mailstring
first_namePrimeiro nomestring
genderGênerostring
last_nameÚltimo nomestring
nameNome completostring
Tem mais aqui, como local de nascimento, relacionamento, etc.

PROBLEMAS ENCONTRADOS EM HTML5

Estou testando e usando esses códigos para jogos em HTML5, e encontrei alguns problemas ao usar os mesmos devido aos navegadores.

ex: Ao tentar utilizar o comando POST, ocorria o seguinte:

Chrome: não enviava
Opera: enviava ok
Firefox: não conectava

Embora que o problema é solucionado ao efetuarmos a LIMPEZA DO CACHE.

Acredito que deve ser devido a estar testando ainda o sistema, espero que fique bom quando estiver valendo Happy

Bom pessoal, quem quiser se aprofundar mais a respeito da API gráfica do Facebook, pode acessar esse link, é preciso ter uma noção de inglês para entender, porque ainda não existe tradução para a página (um dos motivos pelo qual eu postei esse tutorial e os outros)

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por fredcobain em Seg 27 Jan 2014, 01:00

Mais um excelente tutorial aprovado com louvor.
Muito obrigado por compartilhar.

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Jiraya em Seg 27 Jan 2014, 01:42

exelebte tuto.

bem explicado e facil de entender.

eu sempre tive curiosidade em usar as funçoes do face, mas nem tentava pq temia acabar fazendo algo errado e travando meu perfil.

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por xxxAKIRAxxx em Seg 27 Jan 2014, 11:19

Parabéns, excelente tutorial =D

xxxAKIRAxxx

Número de Mensagens : 108
Idade : 26
Data de inscrição : 04/02/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   : 1
   :

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Gonzo em Seg 20 Out 2014, 11:55

tentei colocar um botão de curtir no meu app só que é bem complexo e por falta e exemplo "engine" eu consegui colocar só um link externo pra curtir, como fiz..
url_open('http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fpages%2FMega-Sena%2F360838920666271%3Fref%3Dhl&width&layout=standard&action=like&show_faces=true&share=true&height=80&appId=450552958328560');

alguem pode me ajudar como seria no android, vlw

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Isaque Onix em Ter 21 Out 2014, 00:56

caraca, esse tutorial esta muito bom... mais, tem como postar essa imagem carregando-a direto do aparelho android???
tipo um sprite_add com um get_open_filename...?

Grato pelo tutorial e pela provavel resposta

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Gonzo em Sex 24 Out 2014, 13:00

estou recebendo a mensagem "was not called or facebook appid is missing" estou confuso fiz td certinho..

usei esse exemplo ao clicar no mouse left pressed

Código:
var wallPostMap; //Cria uma variável chamada wallPostMap
wallPostMap = ds_map_create(); //Transforma a variável em um ds_map
ds_map_add(wallPostMap, "message", "Escreva sua mensagem aqui..."); //Adiciona a chave 'message' com a mensagem que você quer
ds_map_add(wallPostMap, "picture", "http://meu_site.com/minha_imagem.jpg"); //Adiciona a chave 'picture' com o link para a imagem
ds_map_add(wallPostMap, "link", "http://meu_site.com"); //Adiciona a chave 'link' com um link para onde o usuário será redirecionado ao clicar
ds_map_add(wallPostMap, "name", "Clique aqui para abrir o link"); //Adiciona a chave 'name' que é usada para substituir o link
ds_map_add(wallPostMap, "caption", "meu_site.com - caption"); //Adiciona a chave 'caption' que é o subtítulo do link
ds_map_add(wallPostMap, "description", "Minha descrição... lbalablablabalabl albala ba lab laba albalbalba lab lab al a"); //Adiciona a chave 'description' que inclui uma descrição no post
facebook_graph_request("me/feed", "POST", wallPostMap, -1); //Envia o post ao Facebook
ds_map_destroy(wallPostMap); //Destrói o ds_map
o que pode ser??

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Conteúdo patrocinado Hoje à(s) 17:56


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum