Facebook mit GameMaker verbinden

    • Skript

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Facebook mit GameMaker verbinden

      Ich hoffe das Subforum passt für dieses Thema...


      Ich habe vor meine Spiele mit Facebook zu verbinden, um dessen Accountsystem zu nutzen und mein eigenes damit zu ersetzen.
      Da kaum jemand noch keinen Account auf Facebook hat bietet sich dies an, da somit neues Anlegen von Accounts wegfällt und man sich keine weiteren Logindaten merken muss. Zudem kann man sämtliche Vorteile von Facebook nutzen, wie etwa neue Spieler zu werben oder dem Benutzer erlauben seine Fortschritte zu teilen...

      Nun wollt ich erstmal fragen, wer sich damit schon auseinandergesetzt hat oder ob es soetwas sogar schon für den GameMaker gibt - ich konnte dazu noch nichts finden.
      Und wer würde diese Funktionen auch gerne für seine Spiele nutzen?

      Ich habe mich bereits mit den verschiedenen Facebook SDKs etwas vertraut gemacht und werde versuchen etwas zu implementieren.
      Wenn also Interesse besteht, werde ich hier posten wie ich voran komme und euch natürlich informieren wie ich das ganze zum laufen bekomme und was dafür nötig ist.

      Ich denke das wäre eine nette Erweiterung für GameMaker Spiele mit einigen innovativen Möglichkeiten, die einem viel Arbeit abnehmen können.
    • Ich würd's mir auf jeden Fall mal anschauen.
      █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
      █████ ███████ ███ your █████ ████ government.
    • Ja bei meinem neusten Spiel benutz ich das sogar.
      Aber ich würde immer noch eine normale Registrierung als Alternative anbieten.

      Du solltest PHP und MySQL können aber ich denke das ist für dich ja kein Problem wenn du schon ein Anmeldesystem geschrieben hast.
      Danach erstellst du eine neue Anwendung in der FB Developer App .
      Da kannst du dann alle Einstellungen festlegen und dir auch Beispiel Code für deine Webseite downloaden.
      Mehr dazu findest du in der Dokumentation auf developer.facebook.com

      Im Game Maker hab ich es so gelöst:
      Mit der http.dll überprüfen ob der User die Anwendung auf Facebook akzeptiert hat.
      Wenn nicht dann einfach einen Web-SplashScreen zeigen wo er es machen kann und danach eben wieder überprüfen ob er akzeptiert hat oder abgebrochen.

      Das sind alles nur Denkanstöße ;)
      Les dir am besten die Dokumentation durch die hilft dir bei fast allem.

      MfG xxskxx
      -
    • :) Danke für die ersten Anleitungsschritte, dann muss ich das schonmal nicht mehr erklären. Was mich betrifft, war ich allerdings schon so weit.

      Wer jetzt auch gerne versuchen würde das umzusetzen, sei gewarnt... wenn ihr euch für die aktuelle Facebook PHP SDK entscheidet (der mit Sicherheit einfachste Weg) dann braucht ihr einen Server der auch cURL unterstützt. Ich hab extra für diese Angelegenheit einen neuen Webspace gesucht und bin dann bei lima-city.de hängen geblieben. Kostenlos, Werbefrei und sämtliche Spielerreien wie cURL und SSL sind vorhanden.
      Da aber eine Vielzahl von Servern, vor allem die kostenlosen, keine cURL-Erweiterung haben, hat sich jemand hingesetzt und eine Version geschrieben, die ohne cURL funktioniert: blog.mattmecham.com/2010/06/07…k-graph-api-php-sdk-fork/
      Davon ist aber dringend abzuraten, da hier nicht sichergestellt ist, dass es für jedes Update von Facebook eine neue Version geben wird. Außerdem kommt man trotzdem nicht drumrum SSL zu nutzen. Und das ein Server SSL hat, aber kein cURL, sieht man auch nicht oft.

      Ich hab auch in der Richtung deiner Denkanstöße begonnen... Sehe ich das richtig, dass man nicht drumrum kommt, bei dem Login eine Seite zu öffnen? Also undmöglich Name und Passwort direkt in der Anwendung auszulesen? Benutzt du dann eine Browser DLL oder öffnest du einfach die Seite extern?
    • BadToxic schrieb:

      Ich hab auch in der Richtung deiner Denkanstöße begonnen... Sehe ich das richtig, dass man nicht drumrum kommt, bei dem Login eine Seite zu öffnen? Also undmöglich Name und Passwort direkt in der Anwendung auszulesen? Benutzt du dann eine Browser DLL oder öffnest du einfach die Seite extern?

      Genau. Wenn der User an seinem Computer schon bei Facebook eingeloggt ist hast du Zugriff auf seine Daten sonst musst du ihn via Graph erst einloggen. (Bzw. muss er die Anwendung erst bei FB installieren) Und das geht nur über eine von Facebook bereitgestellte Seite.
      Wie gesagt nimm doch einfach die http.dll um zu überprüfen ob der Benutzer sich eingeloggt hat und wenn nicht zeigst du ihm die Login Seite via

      GML-Quellcode

      1. splash_show_web("https://graph.facebook.com/oauth/authorize/.....",-1);

      Danach wieder überprüfen ob du schon Zugriff auf die Daten hast und wenn nicht => Login Seite zeigen / Alternative anbieten
      -
    • Irgendwie hab ich da ein paar Probleme...
      Wie genau soll ich den testen, ob der aktuelle Benutzer gerade online ist? Ich hab da was geschrieben:

      PHP-Quellcode

      1. <?php
      2. require 'src/facebook.php';
      3. //Application instance - toxicon
      4. $facebook = new Facebook(array(
      5. 'appId' => '...',
      6. 'secret' => '...',
      7. 'cookie' => true,
      8. ));
      9. $session = $facebook->getSession();
      10. $me = null;
      11. // Session based API call.
      12. if ($session) {
      13. try {
      14. $uid = $facebook->getUser();
      15. $me = $facebook->api('/me');
      16. } catch (FacebookApiException $e) {
      17. error_log($e);
      18. }
      19. }
      20. // login or logout url will be needed depending on current user state.
      21. if($me) echo '1'.$uid.'<next>'.$me['name'].'<next>'.$facebook->getLogoutUrl();
      22. else echo '0'.$facebook->getLoginUrl().'&show=close';
      23. ?>
      Alles anzeigen

      Wenn ich das im Browser ausführe funktioniert alles bestens, je nachdem ob ich eingeloggt bin, oder nicht, kommt die entsprechende Ausgabe. Auch die Login- und Logoutlinks funktionieren im Browser.
      Wenn ich nun aber per http.dll diese php aufrufe bekomme ich immer den Offlinestatus. Auch wenn ich mich vorher im Spiel per LoginLink oder direkt per

      PHP-Quellcode

      1. "https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=http://www.facebook.com/connect/login_success.html&type=user_agent&display=popup"
      eingeloggt habe, wass laut der "Success Seite" wohl auch klappt. Ich müsste dem Server ja irgendwie klar machen, dass diese Aufrufe zusammengehören. Wie machst du das? Und wie liest du dann das AccesToken aus?