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 (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
128 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 123, userów: 5, ukrytych: 0
♔ Adriann ♔ , Chell, Nikas, I am vader, Japanstache

0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Ram (20:04, 30.03.17):
Dobry
I am vader (18:43, 30.03.17):
Dodałeś go, dzięki za pomoc.
Uzjel (18:33, 30.03.17):
I am vader, podeślij mi nick lub maila tej osoby, bo możliwe że została wzięta za bota i usunięta. Lub niech sprawdzi czy ma aktywne konto bo teraz kilka aktywowałem.
Uzjel (18:32, 30.03.17):
Przywróciłem normalną rejestrację, spodziewajcie się spambotów i napływu setek nowych aktywnych userów
Uzjel (18:30, 30.03.17):
Bo jakiś inny admin to włączył i miał pilnować
Penguin (18:15, 30.03.17):
Ja tez
PatrykPlayingPOLSKA (18:03, 30.03.17):
Również
Wojo (17:47, 30.03.17):
popieram
I am vader (17:16, 30.03.17):
Admin by sie ku**a przydal bo znajomy ma od 8 dni nieaktywne konto. Ciekawe ilu nowych tak stracilismy. No ja wiem ze spamboty są denerwujące, ale po to mamy modów, żeby je usuwali, może lepiej wyłączyć wymaganie potwierdzenia konta przez admina, skoro Uzjel nie ma czasu?
Nikas (13:04, 30.03.17):
Dzięki!
gnysek (12:29, 30.03.17):
YoYo Games / River Court, 5 W Victoria Dock Rd Dundee / Scotland DD1 3JT / United Kingdom
gnysek (12:29, 30.03.17):
Pełną skrzynkę? Hm, jako admin mialem 10000 miejsc
Nikas (12:10, 30.03.17):
Gnysek, bo chciałem na PW napisać ale masz pełną skrzynkę. Podasz adres do YYG? Bo myslę, że spoko do nich wysłać tą wersję pudełkową najthołxa.
Chell (19:27, 29.03.17):
przyganiał kocioł garnkowi
gnysek (15:36, 29.03.17):
Pfff "admini". Może będą udawać, że są ?
Fervi  (12:17, 29.03.17):
Może "HTML5 w Game Maker wreszcie poprawnie działa"
PatrykPlayingPOLSKA (22:17, 28.03.17):
Ciekawe co admini wymyślą na 1 kwietnia
Wojo (20:56, 28.03.17):
w sensie gratulacje
Wojo (20:56, 28.03.17):
zajebiście przemyślana ta kolekcjonerka graty
I am Lord (19:26, 28.03.17):
A niby każdy hejtował że nic z tego nie będzie bo to AGg studio miało jakąś guwno stronke napisaną na kolanie przez studenta a tu popatrz jest napracowanie
Nikas (19:18, 28.03.17):
Niespodzianka?
Nikas (19:17, 28.03.17):
XDDDD
I am Lord (19:14, 28.03.17):
Wydawca który ma tajemnice przed tobą? :d
Nikas (18:41, 28.03.17):
www.facebook.co...e=3&theater o kurwa ale rozjebali z tą kolekcjonerką dla prasy! mnie nie chcieli powiedzieć, ale soundtrack na kasecie rozjebał wszystko XD
PatrykPlayingPOLSKA (18:05, 28.03.17):
Jak by co to Chivalry: Medieval Warfare jest teraz darmowe store.steampowe...19640/?l=polish
Nikas (17:48, 28.03.17):
Oby częściej dopisywała.
I am vader (16:23, 28.03.17):
Piękną mamy pogodę na shitboxie dzisiaj
ANtY (15:07, 28.03.17):
forum.gmclan.or...mp;#entry443351 jest i nowy trailer
Ignatus (14:17, 28.03.17):
Twórcy gier nienawidzą go.Zarobił miliony na grach dzięki jednemu prostemu trickowi
Wojo (13:44, 28.03.17):
poka trailera a nie
Nikas (13:43, 28.03.17):
[SPRAWDŹ MEMY]
Nikas (13:43, 28.03.17):
Skisłen z jednego prostego tricku. xDDDD
ANtY (13:41, 28.03.17):
xDDD boże piękny dzień
Wojo (13:41, 28.03.17):
Korzystać z gotowych silników bo po to one są i mega ułatwiaja pracę
Wojo (13:40, 28.03.17):
klepiecie po parę lat jeden silniczek, który ostatecznie okazuje się być dnem, zamiast skorzystać z jednego prostego triku, który niedawno odkryłem
Wojo (13:40, 28.03.17):
No ja was też nie rozumiem klepiecie programiki po 14 godzin dziennie, ogarniacie matme i fizykę, sprawiacie wrażenie osób, które znaja game makera na wylot a mimo to nie widać efektów waszych prac
ANtY (12:55, 28.03.17):
ojć xD
Uzjel (12:54, 28.03.17):
Chciałem coś dodać, ale Nikas pozamiatał
Nikas (10:04, 28.03.17):
Masz na myśli poświęcenie czasu na jeden projekt, dopracowanie go w 100% i przede wszystkim skończenie?????? Nie no lol ziomuś, lepiej robić kilka miernych projektów i żadnego nie skończyć, chyba nie wiesz co odróżnia prawdziwego twórcę gier od samozwańczego. ::))))
ANtY (8:42, 28.03.17):
a nie lepiej skupić się na jednym czymś co ma największy potencjał? Chyba, że do żadnego z tych projektów nie jesteś przekonany to rozumiem z czego to się bierze
I am Lord (21:31, 27.03.17):
w zasadzie po wykonaniu obowiązków w domu zostaje mi na gamedev jeszcze mniej
I am Lord (21:29, 27.03.17):
źle odbija na mnie*
I am Lord (21:28, 27.03.17):
a ja bym chciał mieć czas by mieć chociaż 5h wolnego w dniu :/ muszę pomysleć o zmianie pracy bo to się źle odbija na
Threef (21:14, 27.03.17):
This. Tak bardzo
ΨΧΞ (21:10, 27.03.17):
choroba game jamowca - polega na niekonczeniu projektow. bardzo ciezko sie leczy, latami, przewlekla.
Threef (21:00, 27.03.17):
Zawsze polecam odcięcie internetu siekierą i zniesienie komputera z krzesłem do piwnicy. Teraz lato idzie więc w piwnicy i tak będzie chłodniej.
I am vader (20:57, 27.03.17):
Nawet 8H byłoby dobrze.
I am vader (20:36, 27.03.17):
Chciałbym mieć motywację robić tak 14H dziennie.
Nikas (20:21, 27.03.17):
No i po co tyle na raz?
Ankieta
» Czy jesteś szczery odpowiadając w ankietach w Internecie?
Tak
Nie

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!

[ Czas generowania strony: 0.02054 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev