Nasze strony: gmclan.org gameonly.pl ps-plus.pl gameswithgold.pl n-switch.pl hmt.pl
Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Akademia GMCLANu
Kategorie bazy artykułów
Artykuły -> Game Maker
Treść artykułu
Facebook - posty na wallu / Android
autor: gnysek (14.12.12) | czas czytania: 6 minut, 50 sekund
Nie było to łatwe, siedziałem ponad godzinę - mam nadzieję, że dzięki temu kursowi zrobicie to w 10 minut :)

Po pierwsze, wysyłanie wiadomości na FB działa tylko w gotowych apkach, nie w runnerze - zatem aby je przetestować, trzeba niestety stworzyć APK - zatem na wersji Studio z samym testem na Androidzie nic nie zrobicie.

Krok 1 - konfiguracja GM:Studio

Pierwsze co robimy, to odpalamy okno File > Preferences i przechodzimy do taba "Android".

Wypełniamy "Certificate Private Keystore". W pole Name i Alias wpisujemy sobie jakieś dowolne nazwy, może to być np. "nick" i "nick2". Name to przy okazji nazwa pliku który z keystorem który się wygeneruje. W pola password wpisujemy jakieś hasło - w oba takie samo!. Resztę można wypełnić według uznania.
Następnie klikamy GENERATE. OK, plik utworzony.

Krok 2 - konfiguracja Facebooka

Wchodzimy na stronę developers.facebook.com i klikamy "+ Utwórz nową aplikację". W okienko które się pojawi wpisujemy nazwę aplikacji (może być nazwa gry), a w drugie wpisujemy unikalną nazwę (będzie to też końcówka url na facebooku do naszej aplikacji). Ja moją nazwałem gmclan-andek :)
Potwierdzamy chęć utworzenia przepisując kod z obrazka.
Teraz pokaże nam się strona Aplikacje > Nazwa > Basic. Zostawcie na razie tę stronę otwartą, przejdziemy do tworzenia haszu dla Androida. Wykumać to z kursu YYG nie było łatwo, ale od czego macie mnie?

Krok 3 - tworzymy hash dla facebooka

Po pierwsze, wchodzimy na stronę: code.google.com.../downloads/list i pobieramy program w wersji dla naszego procesora (patrzcie tylko na te z zielonym FEATURED przy nazwie).
Rozpakowujemy go gdzieś na dysku - może być np. C:/SSL/ - potem i tak go skasujemy. Upewnijcie się tylko, że po rozpakowaniu istnieje ścieżka np. C:/SSL/bin - jeśli nie, to źle rozpakowaliście :)

Teraz tworzymy plik facebook.bat na dysku C. W treści wpisujemy:

kod:@echo Exporting keystore cert
"C:\Program Files\Java\WERSJA_JRE\bin\keytool.exe" -exportcert -alias TWOJ_ALIAS -keystore "PRIVATE_KSTORE" -storepass TWOJE_HASLO > debug.keystore.bin

@echo Converting to sha1
C:\SSL\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1

@echo Converting to base64
C:\SSL\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64

@echo Done, Android hash key for Facebook app is:
C:\SSL\bin\openssl base64 -in debug.keystore.sha1
@pause

Pod WERSJA_JRE wpisujemy np. jre5, jre6, lub jre7 - zależnie które mamy na dysku (musicie sami sprawdzić ścieżkę C:\Program Files\Java\).
Pod TWOJ_ALIAS wpisujemy to co mamy w GM:Studio w Prefenrences w zakładce "Android" w polu "Alias" (wpisaliśmy to w kroku 1).
Pod TWOJE_HASLO wpisujemy to samo hasło (jakbyście go już nie pamiętali, checkbox "reveal password" pomoże).
Pod PRIVATE_KSTORE wklejamy zawartość pola "Private KeyStore File" - nazwa tego pliku przed kropką powinna zawierać to samo słowo, które jest w polu Name.

Sprawdzamy raz jeszcze, czy ścieżki do tego całego SSL się zgadzają.

Zapisujemy, klikamy dwukrotnie. Ta Dam! Wygenerował się hash. Nie zamykamy tego okna! Teraz otwieramy plik "debug.keystore.base64" który się wygenerował i sprawdzamy, czy to te same hashe, tak dla pewności - jeśli nie, to być może w innym utworzonym plikun jest ten sam co w oknie konsoli - w każdym bądź razie to ten klucz należy skopiować/przepisać do Facebooka.

Krok 4. Wklejamy hash do Facebooka
Wracamy do przeglądarki i strony Aplikacje > Nazwa > Basic. Klikamy na Native Android App. W Key Hashes wklejamy nasz wygenerowany HASH. "Logowanie do facebooka" zaznaczamy na WŁĄCZONE, reszta pól jest albo pusta, albo "Wyłączone". Klikamy Zapisz.

Na górze widnieje teraz numer AppID: Kopiujemy Go.

Krok 5. Kończymy zabawę :)
Wracamy do GM:Studio. Wchodzimy w GlobalGameSettings i w zakładce Facebook zaznaczamy "use" i wklejamy kod.
Uff. Gra jest gotowa do obsługi Facebooka.

Tworzymy obiekt i w Create wpisujemy:

kod:facebook_init();

var permissions = ds_list_create();
ds_list_add(permissions, "publish_stream");
facebook_login(permissions);
ds_list_destroy(permissions);

virtual_key_add(0,0,display_get_gui_width(), display_get_gui_height(), vk_enter);

sent = false;

Powyższy kod inicjuje Facebooka, ustawia prośbę o dodawanie postów na tablicy (którą user musi zaakceptować). Dodatkowo zrobiłem usuwanie ds_listy, zeby nie zawalała pamięci ;) Potem definiujemy wirtualny klawisz enter na cały ekran [zgodnie z GM:Studio >1.1.700 gdzie virtual keye są nakładane na GUI].

Teraz tworzymy event key press Enter.

Możemy wybrać jedną z dwóch opcji:

A. Wiadomość puszczona cichaczem

kod:if sent = false {
sent = true;
facebook_post_message("Tytuł","Opis","Wiadomość",
"http:// forum.gmclan.org/style_images/8_logo_forum.png","http:// gmclan.org","","");
}

Zmienną sent dodałem dlatego, że wysyłanie FB resetuje stan wciśnięcia klawisza i za pierwszym razem mi trochę zaspamowało tablicę (100 wpisów...). Zatem upewniamy się, że wpis doda się raz.
Druga funkcja to wysyłanie wpisu do FB. Jest Tytuł, Opis, Wiadomość, Grafika oraz Adres pod który link odsyła. Pozostałe dwa parametry nie są nam potrzebne i są do innych zastosowań (polecam dokumentację...).

B. Wiadomość wpisana przez użytkownika.

Ta wersja nie wymaga ustawień permissions (zatem 4 linijki za facebook_init() w create można wywalić) - użytkownik fizycznie wysyła wiadomość (jakby się dzielił czymś na FB), więc FB nie wymaga żadnych uprawnień:

gml:if sent = false {
sent = true;
var interactiveMap;
interactiveMap = ds_map_create();
ds_map_add(interactiveMap, "picture", "http:// forum.gmclan.org/style_images/8_logo_forum.png");
ds_map_add(interactiveMap, "link", "http:// gmclan.org");
ds_map_add(interactiveMap, "name", "Tytuł");
ds_map_add(interactiveMap, "caption", "Opis");
ds_map_add(interactiveMap, "description", "Długi opis");
facebook_dialog("feed", interactiveMap, -1);
ds_map_destroy(interactiveMap);
}


Kolejny krok - dodanie kodu w Draw.
W draw dodajemy:

gml: if sent= false {
draw_text(10,10,"Dotknij palcem, żeby wysłać wiadomość");
} else {
draw_text(10,10,"A teraz sprawdź swojego facebooka :)");
}

Warto jeszcze dodać jedna rzecz - przypisać game_end(); pod klawisz backspace ;)

W sumie wszystko gotowe. Jedna sprawa - w GM jest jakiś bug, więc zanim zapiszemy plik .APK, należy testowo uruchomić grę (F5) i ją zamknąć, albo zrestartować GM:Studio, jeśli generowaliśmy nowy KEYSTORE (krok 1). Trzeba to zrobić tylko za tym pierwszym razem, a samego keystore nie trzeba generować na nowo dla innej gry - może być taki sam dla każdej ;)

Teraz klikamy "Create Executable". Tam, dam dam! Jeśli plik się stworzy (na co liczę), to odpalamy go i przeniesie nas do facebooka, który zapyta o zgodę na dodawanie postów przez aplikację (jeśli zamiast "Zgadzam się" jest guzi "OK" i nie ma "Anuluj" z lewej strony, to pewnie mamy zły hash - zresztą będzie czerwona ramka, ze źle skonfigurowano aplikację). Zgadzamy się po czym klikamy palcem w ekran. Zgodnie z instrukcją, sprawdzamy naszego Facebooka, a tam...



Gdyby jednak w trakcie tworzenia APK wyskoczył wam błąd (może dotyczyć tego, ze nie znaleziono waszego KEYSTORE w katalogu gm_ttt_XXX), to restartujemy GM, odpalamy naszą grę jako test (F5) i próbujemy na nowo.

Jeśli macie problemy - piszcie w komentarzach, może coś przeoczyłem.

Wkrótce wersja dla iOS - tam jest prościej ;)



P.S. Włączenie trybu piaskownicy (guzik nad ustawieniami androida na stronie Facebooka) ukryje te posty przed znajomymi ;)
głosów: 3 | ocena: 6.99 oceń zasób | dodał: gnysek
Komentarze
stron: 1

1


av

Uzjel (22:03, 14.12.2012)

Kurna, trochę trudne. Może w następnym projekcie x)

av

gnysek (13:19, 19.12.2012)

Poprawiłem kilka błędów oraz dopisałem o drugiej możliwości, gdzie użytkownik dostaje popupa i może sobie wybrać jaki chce opis do linku

av

kriso99 (18:44, 17.04.2014)

Przydało się, dzięki ;-)

av

gnysek (18:48, 17.04.2014)

Szkoda, że FB tak często wszystko zmienia, bo już sporo jest nieaktualne

av

art22pl (21:11, 1.10.2014)

Chyba teraz trzeba wysłać aplikację w celu ustawienia uprawnień , próbowałem to ustawić z poziomu gm ale postów na stronę gł. już nie wstawi tym sposobem . Chyba że po akceptacji . Co najdziwniejsze sposób z php nadal działa więc po co te zmiany na tym fb ...

av

gnysek (10:23, 2.10.2014)

Z runnera to nigdy nie działało. Musi być APK/IAP zbudowane.

av

art22pl (19:51, 2.10.2014)

Dokładnie , tak już jest zbudowany GMS . Dlatego zawsze robię pełną apke na Androida .

stron: 1

1



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
2 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 1, ukrytych: 0
nowy_user
Użytkownicy na czacie discord
Shoutbox
gnysek (12:35, 20.04.21):
Wracaj, wracaj.
I am Lord (11:04, 20.04.21):
Może wrócę do tworzenia gierek 😂
gnysek (10:48, 20.04.21):
Super, dzięki! Przed odjęciem prowizji zadeklarowaliście wspólnie aż 745 złotych, także jeszcze z jedna osoba i jak te przelewy przyjdą (pewnie kolejne 3-4 dni) to powinienem mieć tyle kasy, żeby licencje forum odnowić. Co zostało, będzie na jej przedłuzanie (25$ na pół roku), chociaz ono chyba nie będzie potrzebne bez przerwy, postaram sie oszczędzać na tym ile się da.
nowy_user (10:40, 20.04.21):
I ja również trochę dorzuciłem, niech Gmclan żyje długo i szczęśliwie!
Adriann (9:10, 20.04.21):
No, udało się wreszcie I ja dorzuciłem małą cegiełkę do projektu
gnysek (19:09, 19.04.21):
No, bo dojechaliśmy do 600zł, zaraz będzie na tę nieszczęsną licencję forum
Adriann (14:21, 19.04.21):
Tak widziałem tylko teraz ja mam jakiś problem z kartą odnośnie uwierzytelnienia Ale ogarnę w najbliższym czasie
gnysek (8:12, 19.04.21):
@Adriann Napisali mi, że płatność kartami jest już aktywna.
gnysek (1:44, 19.04.21):
Jeszcze ze 150zł i aktualizacja forum poleci
gnysek (1:06, 19.04.21):
Jutro postaram się wszystko ogarnąć, jak na dobre przysiądę do laptopa i oczyszczę taski w pracy.
gnysek (1:04, 19.04.21):
Woah, ja nie nadążę zaraz tego ogarnąć, nawet nie liczyłem na taki odzew
SimianVirus7 (12:55, 18.04.21):
I ja dołożyłem swoją cegiełkę, w końcu przychodzę tutaj od 8 lat
Sutikku (20:52, 17.04.21):
super pomysł, zostałem patronem
gnysek (19:31, 17.04.21):
Trochę tak, więc pewnie dziś wylecą. Mamy już połowę kwoty!
I am Lord (19:06, 17.04.21):
reklamy pewnie i tak złotówka na miesiąc xd
gnysek (19:03, 17.04.21):
Myślę, że zdejmę reklamy ze strony w zamian za to wsparcie, jak dobijemy do celu
Adriann (18:44, 17.04.21):
o, to chcę kartą
gnysek (16:51, 17.04.21):
Możesz odpiąć po miesiącu. Karty czekają na aktywację, wkrótce będą.
Adriann (16:23, 17.04.21):
Kurczaki..nie mam PayPala a nie chcę płacić z góry a co miesiąc
gnysek (15:29, 17.04.21):
OK, link do wspierania GMCLANu - patronite.pl/GMCLAN .
gnysek (23:34, 16.04.21):
Serwer przeniesiony, jeszcze pewnie z godzinkę/dwie będzie problem z certyfikatem.
gnysek (17:47, 16.04.21):
Czekam jeszcze na wersyfikację dowodu osobistego.
Adriann (14:01, 16.04.21):
Chętnie się dorzucę
gnysek (13:01, 16.04.21):
W akceptacji jest też GMCLANowy profil na patronite, z progami 5 i 10zł.
gnysek (22:31, 15.04.21):
Nastawienie na kurs tworzenia gier, oczywiście też nie jakiś uber poziom, ale tak, żeby omówić najbardziej potrzebne zagadnienia (włącznie z jakimś prostym AI w różnych typach gier),
Adriann (17:58, 15.04.21):
A jakie są założenia nowego gmalcnu? Tylko zmiana grafiki czy coś więcej?
gnysek (15:12, 15.04.21):
To tak bardzo, bardzo wstępnie:
gnysek (9:56, 15.04.21):
A to też, niektórym zaproszeni nie działa, ale to nie moja wina.
Adriann (8:54, 15.04.21):
Coś kojarzę że wcześniej nie zawsze działało
gnysek (20:08, 14.04.21):
Dałem dodatkowy link "otwórz discord" bo chyba nie każdy kumał, że da się wejsć
gnysek (16:58, 14.04.21):
OK, domena już w OVH, teraz pora na przenosiny serwera z OVH do dHosting, wszystko podle ceny
Konrad-GM (18:24, 13.04.21):
Jakby ktoś team zbierał, to imo lepiej trochę wcześniej, sam chętnie dołączę do jakiegoś
Adriann (16:17, 13.04.21):
Aaa kto wie, jeszcze sporo czasu zostało
Konrad-GM (14:05, 13.04.21):
Szykuje się jam GMTK, ktoś z GMC może będzie brać udział? itch.io/jam/gmtk-2021
Konrad-GM (14:03, 13.04.21):
Chell sorry, 20% ale, że na 100% zadziała, w ogóle to kolejną minigierkę w godotcie skleiłem lethiandev.itch...ot-pablo-jumper
gnysek (13:51, 13.04.21):
W tym tygodniu planuję przenosiny GMCLANu na nowy serwer. Pewnie w piątek nocą, może szbybciej.
Chell (9:09, 13.04.21):
oo, a piszą że na 20%
Konrad-GM (17:44, 12.04.21):
Meh mi nie pokazało tego popupa, ale kod działa na 100%
Konrad-GM (17:43, 12.04.21):
Niestety miałem okazję pracować z Wordpressem, podzielam ten ból
gnysek (16:56, 12.04.21):
Ciekawostka, YYG teraz losowo pokazuje na swojej stronie taki popup:
gnysek (16:56, 12.04.21):
Wordpress to jest akurat shit jakich mało. Jeden request i 30-40MB RAM goła strona potrzebuje,
Konrad-GM (14:54, 12.04.21):
Zaraz jakieś syfony czy zendy się zachciało, przecież jest łordpress xD
gnysek (10:31, 12.04.21):
No nie wiem czy flexem dorzucę gotowe moduły ligi24 Tu i tak większość trzeba by przepisać.
Flashek (21:43, 11.04.21):
Ktoś tu w ogóle jeszcze żyje ?
adam014 (7:10, 10.04.21):
Gnysek, ja bym brał Symfony, flexem dorzucasz co trzeba i ogień, tym bardziej że nie ma co koła na nowo wymyślać
adam014 (7:08, 10.04.21):
Ranmus, jak Gmclan był pisany to ja jeszcze nie mialem pojęcia o programowaniu Chociaż teraz jak trafiia mi się refactor to w 70% przypadków szybciej napisać od zera niż poprawiać
gnysek (11:48, 9.04.21):
Nawet jest oddzielenie widoków i kontrolerów, brakuje tylko modeli Chociaż nad tym częściowo już pracowałem, bo PHPStorm fajnie wykrywa duplikaty kodu, więc sporo "poprawiłem",
Ranmus (9:45, 9.04.21):
To jest kod pisany jak w phpie jeszcze nie było pełnej obiektowości.
Ranmus (9:42, 9.04.21):
adam14 - Ja pisząc gmclan tak naprawdę uczyłem się phpa, a ty tu o frameworkach piszesz?
gnysek (17:47, 8.04.21):
GMCLAN nie Kod GMCLANu ma z 17-18 lat jak nic
Ankieta
» Ile powinny trwać tury Ligi 24?
24h
48h
54h (piątek od 18:00)
7 dni
inna długość (podałem w komentarzu ankiety)

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2021. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus, © 2017-2021 {=|=} fable_inside();

[ Czas generowania strony: 0.19752 sekund ] [ Liczba zapytań MySQL: 13 ]