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
77 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 74, userów: 3, ukrytych: 0
Uzjel, lew_leo, ALT

0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Nikas (15:16, 21.01.17):
ayyy ;///
exp (13:54, 21.01.17):
to nie byłem ja
Wojo (13:23, 21.01.17):
tylko przy referenie
Wojo (13:22, 21.01.17):
tatu - robot
Nikas (13:01, 21.01.17):
A ja nie wiem już, pamiętam tylko, że pytałeś się przy jakim traczku ją przelecieć. xDDD
exp (11:37, 21.01.17):
o jakiej lasce ja ci pisałem kiedyś?
Nikas (0:15, 21.01.17):
spk a u ciebie exp? stuknąłeś w końcu tą laskę co mi o niej pisałeś kiedyś? xD
Chell (0:02, 21.01.17):
przywolalem po nieobecnosci od wrzesnia, nie ma za co
exp (23:47, 20.01.17):
jak tam żyjecie
Nikas (23:39, 20.01.17):
XDDDD
MaxGaming (22:52, 20.01.17):
YXE bo jak mówiłeś trzeba być miłym dla niepełnosprawnych
Nikas (22:41, 20.01.17):
Jezu w ogóle olać kwestię bana czy ostrzeżenia. xD Przeciez jak ja teraz dostaję warna to nie wiem co o tym mysleć. xD
ΨΧΞ (22:34, 20.01.17):
to dlaczego nie mam?
MaxGaming (22:15, 20.01.17):
No ale jak już YXE sam wszedł w ten temat to gdyby Nikas obraził jego matkę(w dodatku sugerując że jest lekkich obyczajów) miałby bana na pewno...
Wojo (22:13, 20.01.17):
powinieneś dostać na odmułę ale układy, układziki
MaxGaming (22:11, 20.01.17):
Masz na myśli że ja teraz zasugerowałem że złamałeś regulamin? Nie, nie zasugerowałem
ΨΧΞ (22:09, 20.01.17):
iksde xD zastanawiam sie, skoro rzekomo złamałem regulamin, dlaczego nie mam jeszcze bana?
MaxGaming (21:08, 20.01.17):
Pod tytułem "Czy jeżeli 27 latek obraża matki innych userów ci zareagują inaczej niż na gimba?" XDD
ΨΧΞ (17:50, 20.01.17):
durnyś xD
Ranmus (17:43, 20.01.17):
O wy durni, ale się daliście wciągnąć. Przecież to kolejny test socjologiczny. Nie widzicie tego?
ANtY (7:27, 20.01.17):
>długa dyskusja przed snem, że po prześwietleniu historii postów patryka jego DZIEWCZYNA (ONA MA DZIEWCZYNE, NIE ZAPOMNIJCIE!!! była zawiedziona poziomem jego wypowiedzi, po czym nastąpiły długie przeprosiny i obietnica poprawy hmm
Wojzax (2:47, 20.01.17):
YXE co to za pedalski slang i gdzie jest obiecana gra w niszczenie wieżowców?
ΨΧΞ (22:48, 19.01.17):
nudzi mi się, odpisz coś
ΨΧΞ (22:25, 19.01.17):
pamiętasz, co pisałem o mojej obietnicy grzecznego i miłego odzywania się do niepełnosprawnych? nom, to pardon, ale albo załapiesz, albo ta dyskusja nie ma sensu :*
MaxGaming (21:41, 19.01.17):
Patrząc na ilość buziaczków i czułych zwrotów to chyba Twoja dziewczyna jest bardziej męska od Ciebie?
Adriann (20:28, 19.01.17):
Nie mit, nie chodzi tam o samą ilość a nie radzenie sobie organizmu z czymśtam..;d
Ignatus (20:11, 19.01.17):
Nie wiem czy z tym testosteronem i łysieniem to nie jakiś mit.W końcu najwyższy poziom testy jest w okresie dojrzewania-kiedy każdy ma burze loków, a po 30 zaczyna gwałtownie spadać,kiedy właśnie u większości zaczyna się łysienie...
ΨΧΞ (19:56, 19.01.17):
xD oj pysiu głuptaśny, a w mikołaja też wierzysz? nie przejmuj się, każdy ma prawo nie wiedzieć - pozwól, iż przedstawię Cię łysinie androgenowej. dokształcon? nie dziękuj :*
MaxGaming (19:00, 19.01.17):
No zazwyczaj stres o tym mówię, tylko że YXE twierdzi że nie ma uczuć i się niczym nie przejmuje absolutnie xd
Adriann (18:55, 19.01.17):
Eee nie ma co się przejmować, sam mam bardzo mało włosów i wiem że niebawem będę miał kolano na głowie ale to nie oznaka stresu a zbyt dużej ilości testosteronu, możesz nie mieć włosów a dalej być takim seksualnym tyranozaurem jak ja
MaxGaming (18:48, 19.01.17):
A czy łysienie w tym wieku to nie jest głównie oznaka stresu? Czy stres nie oznacza że jednak masz emocję i dosyć bardzo się przejmujesz? xd Zrozum że udając kogoś kim nie jesteś zawsze wcześniej czy później narazisz się na śmieszność. Masz ogromną wiedzę i ogółem swoimi dobrymi stronami powinieneś się legitymować a nie udawać coś w wieku 27 lat...
Wojo (17:10, 19.01.17):
nawet moja składnia
Wojo (17:10, 19.01.17):
nie wiesz wcale, że jego nic nie rusza ?
Wojo (17:10, 19.01.17):
ah ty pysiaczku głupaśny
ΨΧΞ (16:59, 19.01.17):
nie, no jasne iż nie mam. to mój najczulszy punkt, przezeń płaczę po nocach
Ranmus (16:41, 19.01.17):
Patryk spokojnie. Nie musisz tak szczegóło tłumaczyć, że masz dystans do siebie w kwestii łysienia... masz?
ANtY (16:09, 19.01.17):
zawsze kisne xD
ANtY (16:08, 19.01.17):
>ludzie często pytają mnie [..]
ΨΧΞ (15:29, 19.01.17):
przeto to logiczne: chociażby dlatego, że noszę kapelusz i mówię dlaczego, gdy ktoś mnie pyta, nawet tu się to przewijało myślałeś, że noszę go bo chcę być fajny i mędrkuję? xD kaman, łysina jest nieestetyczna D: musiałbym się ogolić cały, a do 30-stki nie zrobie tego.
Ranmus (14:39, 19.01.17):
Patryk, przecież o tym wiem i nie neguję. Zresztą skąd miałbym wiedzieć, że łysiejesz skoro cały czas nosisz czapkę?
Wojo (14:20, 19.01.17):
brrr xD
ΨΧΞ (13:40, 19.01.17):
znikas, dzięki - ląduje w kolekcji memów :*
ΨΧΞ (13:39, 19.01.17):
Pysiaczku głuptaśny, przeto ja mówiłem, "[...] bo łysieję" - nie było tam nigdzie "nie". ale to cudowne, że się starasz pamiętać :*
Ranmus (13:31, 19.01.17):
Zmień "bo mam klasę i chłód" na "bo mam klasę i wcalę nie łysieję Xd". Będzie legitniej.
Nikas (13:23, 19.01.17):
also psichix fajne meme znalazłem podobne tylko z innym kolesiem hehe gmclan.org/uplo...wiek_top_bk.png
Nikas (13:18, 19.01.17):
>mów komuś o tym, żeby nauczył się dobrych pocisków >sam dowal jakiś gimbopocisk po matce xDDDD boże jak to możliwe mając tyle lat
Ignatus (11:11, 19.01.17):
Dzieki
Ranmus (11:10, 19.01.17):
Korodzik, co tam u rodzinki słychać?
Korodzik (10:55, 19.01.17):
Ignatus, kliknij "Opcje" i wybierz widok standardowy
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.01513 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev