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
Kategorie bazy artykułów
Artykuły -> Felietony
Treść artykułu
Facebook - posty na wallu / Android
autor: gnysek (14.12.12)
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 (21:03, 14.12.2012)

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

av

gnysek (12: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 (16:44, 17.04.2014)

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

av

gnysek (16:48, 17.04.2014)

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

av

art22pl (19: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 (8:23, 2.10.2014)

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

av

art22pl (17: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: 0, userów: 1, ukrytych: 0
Madness

6 użytkownik(ów) na gmczacie discord.com
Shoutbox
Threef (9:44, 24.09.17):
Gdzie? Jaki? Bedziemy wspierać i prosić o kod na kolizję na opakowaniach
PoxiPol (7:05, 24.09.17):
Ja kupilem sobie prace. Jutro pierwszy dzien jako wlasniciel Takeawaya ;-;
Threef (19:32, 23.09.17):
Ja to zrozumiałem jakby Ranma nie chciał oddać domeny
PoxiPol (18:33, 23.09.17):
Nic przeciwko Ranmie ofc
PoxiPol (18:32, 23.09.17):
Ja to rozumiem jako dobra wiadomosc
Ranmus (18:23, 22.09.17):
Skąd ten smutek i zwątpienie?
gnysek (6:21, 22.09.17):
O, dzisiaj przychodzi mój hajs z googla, chyba mozna zacząć przenosić GMCLAN na "mój" serwer i przejąć od Ranmy domenę
Threef (19:56, 21.09.17):
No nie jest łatwo. Szczególnie jak dobra ma 24h
Ignatus (19:30, 21.09.17):
Ja tam mam bardziej nadzieję że zrobisz grę Threef Kiedy jakies premiery?
Threef (16:32, 21.09.17):
Mnie tak. Plus mam większą kontrolę. Mogę np robić warunki logiczne.
gnysek (15:54, 21.09.17):
Nie chciało mi się nigdy bawić w takie porównanie.
Threef (15:52, 21.09.17):
No i mam taką tablicę. Oczywiście mam tylko parametry jakie potrzebuję.
gnysek (8:53, 21.09.17):
W ogóle coś ma sie z particlami zmienić, nawet ma być dla nich layer w room editorze, wiec czuję edytor. Co do rysowania sprite w pętli - no to nie, bo mają więcej parametrów - to byś musiał zrobić sporą tablicę, żeby to odwzorować.
Threef (6:58, 21.09.17):
Czy particle są w końcu szybsze w GM:S2 od rysowania sprite w pętli? xD
gnysek (22:04, 20.09.17):
Znalazłem sposób na rysowanie spritów particli normalnie w draw: forum.yoyogames...s-sprites.34697
MaxGaming (16:35, 20.09.17):
jest ktoś kto mi by krótki refren angielski ze słuchu potrafił przetłumaczyć na już?
gnysek (13:37, 20.09.17):
Tu się akurat zgodzę
Ranmus (11:49, 20.09.17):
I bardzo dobrze, że nie ma dziwnych znaków. Same liczby i litery powinny być w nickach.
gnysek (11:14, 19.09.17):
Kodowanie... musiałbym przed każdym SQL do forum zmieniać kodowanie bazy, a potem je przywracać... do dupy z tym nowym forum, żaden to prezent
Uzjel (21:47, 18.09.17):
???
??? (21:38, 18.09.17):
;_;
I am vader (21:26, 18.09.17):
A, to YXE. Jego nick nie wyswietla sie poprawnie.
I am vader (21:25, 18.09.17):
Ciekawe kto to led.feen.us/lkx8xqvn.png
Wojo (10:59, 17.09.17):
chell śmiechłem
Chell (19:35, 13.09.17):
exp ty masz ojca poza kadrem albo cos?
exp (19:03, 13.09.17):
gmclan mnie wychował
exp (19:03, 13.09.17):
ehh
Wojo (12:50, 13.09.17):
Jak tak dalej pójdzie to będę musiał znaleźć realnych kolegów
Wojo (12:49, 13.09.17):
Tu nic nigdy nie działa. Cały czas stoimy w miejscu i nawer nie zapowiada się na korzystne zmiany
gnysek (9:41, 13.09.17):
Niestety, aby ten fix działał, trzeba wejść raz na forum i dopiero drugie wejście będzie OK (więc po fixie jeszcze raz mógł być problem)
gnysek (9:41, 13.09.17):
MaxGaming - bo dodałem usuwanie ciasteczek z domeny .forum.gmclan.org automatycznie. Czyli to jednak to było problemem.
SimianVirus7 (14:08, 12.09.17):
Dzięki
exp (11:15, 12.09.17):
możesz
SimianVirus7 (10:13, 12.09.17):
Tak
exp (9:50, 12.09.17):
czyli po prostu chcesz zrobić grę i wrzucić ją do internetu za darmo?
SimianVirus7 (9:03, 12.09.17):
Mi się śniło, że podpadłem rybnemu gangowi SpongeBoba ale nie po to się zalogowałem, żeby o tym powiedzieć mam pytanie, może dość głupie, ale prawo w Polsce też potrafi takie być. Czy jeśli chce swoją grę rozdawać za darmo i nie brać z tego absolutnie żadnych opłat (nawet z reklam), to mogę ją publicznie udostępniać? Skarbówka lub jakiś inny organ państwowy się do mnie nie przyczepi?
Chell (7:17, 12.09.17):
wpadłem tylko żeby napisać ze śniło mi się że zalogowałem się na 4tk
MaxGaming (17:49, 11.09.17):
Wreszcie mogę się zalogować. Odkąd weszło to nowe forum to nic nie działa jak powinno. Jak klikam w nowości z forum też raz mnie odsyła na główną forum a raz do tematu. PS mam dość proste wydaje mi się pytanie z MySQL którego ja osobiście znam póki co tylko absolutne podstawy. forum.gmclan.or...-i-subkategorii
doctor (18:49, 9.09.17):
Chociaż oficjalnie jest jakiś GDL, może w tym da się klepać (i 3 inne dokumentacje)
doctor (17:46, 9.09.17):
Przypomina nawet nieźle GM, niestety nie ma kodu (trzeba wyklikiwać jakby kod - czuję się jakbym grał w Patapony) - niby sporo funkcji jest (nawet 3D), ale wyklikiwać ...
doctor (17:45, 9.09.17):
Nowe konto xd Na stare wbić nie mogę :/ Jak ktoś szuka coś a'la Game Maker, czyli program do robienia upośledzonych gier to znalazłem GDevelop
Ignatus (20:21, 8.09.17):
Apropo Gnyska dziś czytałem temat o Almoraoczątek- we wstępnie jest "Gra ukaże się w drugiej połowie roku, na PC, a potem na iPada (możliwe, ze będzie to pierwsza produkcja w GameMaker:Studio 2)." A to temat z 2012. Gnysek jak długo trwały te beta testy GM2 ?
Threef (19:55, 8.09.17):
To że gnysek zrobił swego czasu grę o takiej nazwie.
Ignatus (19:52, 8.09.17):
Co to za crap? Co zwróciło Twoją uwagę Threef?
Threef (18:04, 8.09.17):
veggiestew.itch.io/farmer-fran Hmm...
SimianVirus7 (21:48, 7.09.17):
wybacz moje budowanie zdań ale dzisiejszy dzień w pracy dał mi się we znaki
SimianVirus7 (21:47, 7.09.17):
no właśnie się zastanawiałem nad kompilacją i dotychczas myślałem, że największy wkład ma w to procesor
Threef (21:46, 7.09.17):
A SSD pozwala skrócić czas kompilacji x20
Threef (21:46, 7.09.17):
Kilka metrów od PGA
Ankieta
» Jakiej wersji GameMakera głównie Używasz?
GameMaker: Studio 2
GameMaker: Studio
GameMaker 8.1 i starsze
Żadnej

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

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