GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[TUTORIAL] Função facebook_graph_request

+2
fredcobain
itarodrigo
6 participantes

Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty [TUTORIAL] Função facebook_graph_request

Mensagem por itarodrigo 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

[TUTORIAL] Função facebook_graph_request H7tq

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
itarodrigo

Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por fredcobain Seg 27 Jan 2014, 01:00

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

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 3 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Jiraya 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
Jiraya

Games Ranking : Nota A

Notas recebidas : A+A
Data de inscrição : 20/03/2010
Reputação : 108
Número de Mensagens : 1134
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

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

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por xxxAKIRAxxx Seg 27 Jan 2014, 11:19

Parabéns, excelente tutorial =D
xxxAKIRAxxx
xxxAKIRAxxx

Data de inscrição : 04/02/2009
Reputação : 1
Número de Mensagens : 108
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Gonzo 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('https://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
avatar
Gonzo

Data de inscrição : 29/05/2012
Reputação : 33
Número de Mensagens : 929
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Isaque Onix 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
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1626
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Gonzo 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??
avatar
Gonzo

Data de inscrição : 29/05/2012
Reputação : 33
Número de Mensagens : 929
Prêmios : [TUTORIAL] Função facebook_graph_request Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[TUTORIAL] Função facebook_graph_request Empty Re: [TUTORIAL] Função facebook_graph_request

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos