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
1 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 0, ukrytych: 0
Użytkownicy na czacie discord
Darlix (0:23, 17.09.19):
O matko, kiedy ja tu ostatni raz byłem
Nikas (17:58, 13.09.19):
Dave Chappelle - Sticks and Stones. Polecam. Nie pamiętam kiedy się tak uśmiałem.
szpaq99 (16:50, 2.09.19):
To podpalcie niech się wypali ]
I am Lord (19:03, 30.08.19):
No otworzyć i powietrzem przecież
gnysek (14:31, 30.08.19):
Tak to się wdmuchuje kurz do środka, a nie na zewnątrz
Wojo (12:28, 30.08.19):
Sprężone powietrze!
gnysek (21:33, 28.08.19):
Ja bym otworzył i wyczyścił
exp (19:10, 28.08.19):
macie jakiś pomysł jak chłodzić laptop? wentylator ma z boku, więc podkładka niewiele tu da
Wojo (8:26, 27.08.19):
Anty, dziękuję za motywacyjne słowa
gnysek (12:05, 26.08.19):
Polskiej strony Lotto też nie robili w GMS2
gnysek (12:05, 26.08.19):
Patrząc też na podejście YYG to obsługi HTTPS, to na 100% gry kasynowe nie są w GMS2 zrobione
gnysek (12:04, 26.08.19):
Dlaczego wtopą? Robili je zanim kupili YYG. Poza tym, YYG jest tylko spółką-córką, nie rodzi to obowiązku używania ich oprogramowania. To jest tylko inwestycja giełdowa tak szczerze.
nowy_user (8:30, 26.08.19):
Hej, jestem ciekawy, czy wszystkie gry PlayTech (te kasynowe) są zrobione w GMS. Wie ktoś może? Byłoby to niezłą wtopą, gdyby się okazało, że jednak te gry robili w czymś innym :d
ANtY (23:44, 25.08.19):
przemyslcie to jeszcze, w kazdej chwili mozecie odpuscic
Wojo (20:27, 24.08.19):
Ty wygrywie. Wystarczył jeden prosty trik [ZOBACZ JAK]
Chell (15:10, 24.08.19):
mi przeprowadzka dala boosta
Flashek (14:18, 24.08.19):
ateistą
gnysek (14:13, 24.08.19):
Ja jestem tym estetą
Wojo (8:58, 24.08.19):
Ja chciałbym dokonać jeszcze kilka rzeczy, ale coraz mniej mi się chce
ANtY (23:51, 23.08.19):
skad wy bierzecie wole do życia
adam014 (19:01, 23.08.19):
Aż specjalnie się zalogowałem - który esteta wstawił tą do niczego nie pasującą belkę na górze? xD
Threef (12:13, 23.08.19):
To wyglądało jak duplikaty w nazwach zasobów
exp (9:48, 23.08.19):
GMS2, po długich męczarniach udało mi się naprawić większość błędów, ale rozwiązania były dla mnie zupełnie niezrozumiałe i w większości przypadków wciąż nie wiem, gdzie była zależność
gnysek (0:07, 23.08.19):
Jaki GM?
exp (22:47, 21.08.19):
jak to wgl możliwe
exp (22:47, 21.08.19):
w ramach testu dodałem room bez niczego, dałem tylko "room_goto_next()" w creation code i błędy również występują
exp (22:46, 21.08.19):
natrafiłem na przedziwne zjawisko... kiedy dodaję do gry nowy room, losowe fragmenty kodu przestają działać albo działają inaczej
gnysek (0:15, 20.08.19):
O oknach wewnątrz gm, oczywiście
Konrad-GM (22:45, 19.08.19):
A ja mam w laptopie klawisz win po prawej stronie tylko, jest to mega niewygodne imo :/
Ranmus (19:34, 19.08.19):
Nie wiem o czym mowa Gnysek, ale jeśli chodzi o przełączanie okien w windowsie na jednym monitorze, to lepiej raczej win+tab, wypchnąć okienko do nowego pulpitu, a potem ctrl+win+left/right arrow
gnysek (14:00, 14.08.19):
wystarczy korzystać z recent window i ctr+tab
nowy_user (12:08, 14.08.19):
ale za to jak fajnie wygląda poza tym wydaje mi się, że wystarczy dokupić drugi monitor i w GMS2 pracuje się całkiem wygodnie.
exp (23:55, 13.08.19):
ale masakra jest z tym nowym interfejsem. nawyki budowane przez kilkanaście lat poszły do piachu
exp (23:53, 13.08.19):
nie trolluj dowcipnisiu
Chell (21:10, 13.08.19):
jak podasz "nowicjusz" to masz poblokowane różne lengthdiry itd
gnysek (20:15, 13.08.19):
To w celach poznawczych. Żeby potem wiedzieć dla kogo bardziej rozwijać.
exp (16:56, 13.08.19):
swoją drogą, przy rejestracji musiałem określić swój poziom zaawansowania, on na coś wpływa?
exp (16:56, 13.08.19):
pobrałem dzisiaj GMS2 i masakra, jak się wszystko pozmieniało
gnysek (11:48, 12.08.19):
GML jest do nauki w tydzień, jak znasz inny język i masz doświadczenie. Tylko ten ból, ilu rzeczy brakuje...
nowy_user (0:27, 10.08.19):
Wszystko na to wskazuje, myślę że w YoYo doskonale zdają sobie sprawę, ile $$ mogą na tej zmianie zarobić. Wiele małych firm GameDevowych pewnie rezygnuje z GMa na korzyść Unity, właśnie głównie dlatego, że nie znają GMLa i nie chcą marnować czasu na uczenie się nwego języka. A tu właśnie studia i zawodowcy to otencjalnie największy $
gnysek (15:19, 9.08.19):
Kto wie, może te zmiany w grudniu to pierwszy krok ?
gnysek (14:50, 9.08.19):
Miał być JS, ale ostatecznie wyparował z bety (a tam też chyba tylko był w opcjach, a pisać się nie dało).
nowy_user (11:01, 9.08.19):
Mi się marzy, aby GMS dodało w końcu możliwość pisania w innym języku. Co prawda znam tylko GML, ale zawsze mógłbym się nauczyć nowego języka, natomiast dużo łatwiej byłoby mi znaleźć kompanów do wspólnej pracy nad grą, gdyby można było pisać np. w C# . GML jest językiem bardzo niszowym, i ciężko w realu znaleźć ludzi, którzy go znają.
nowy_user (10:56, 9.08.19):
Nie do końca, bo system kamer się trochę zmienił, ja po imporcie swojego projektu mam małe zamieszanie w kodzie z viewami (tzn. wszystko działa jak trzeba , ale kod jest dla mnie dość obcy)
gnysek (17:28, 8.08.19):
Nieee, tylko interfejs, reszta ta sama Dopiero w grudniu będą zmiany, czwarty news od góry.
Konrad-GM (12:04, 8.08.19):
Siemaneczko, strzałka, piąteczka, GM Studio 2 tak się zmienił, że to już nie ten sam GM co na Delphi.
Pablo-GM (12:02, 8.08.19):
siemacie Panowie, kilka lat minęło, a w człowieku odezwał się zew stworzenia gierki. Zastanawiam się tylko jak mocno zmienił się sam game maker?
Flashek (14:26, 7.08.19):
jak ja bylem to było
szpaq99 (9:23, 7.08.19):
Na dolnym też nie było tragedii, dokładnie kilka dni tylko kilka razy przygrzało mocniej i tyle,
gnysek (9:41, 6.08.19):
ja całe życie nad morzem mieszkam i nie stwierdzam upałów w tym roku... może ze dwa dni.
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-2019. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017-2019 {=|=} fable_inside();

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