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
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


[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 : 1625
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


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