Kongregate API not connecting written in C#

7 posts

Flag Post

Hi, im making a game for the web and wanted to use Kongregate due to its support for Unity. I followed instructions and adapted the javascript example they give to create a C# version. I also found a forum discussion on the topic (http://www.kongregate.com/forums/4-programming/topics/135623-unity-api-issues) but even after following examples they showed (http://www.kongregate.com/developer_center/docs/zh/using-the-api-with-unity3d), when I test my game out in the preview section it dose not connect. If anyone can spot the problem or if I need a file in my project i dont have please let me know, I am lost on the issue. Im testing the connection on the preview page of the game, im not sure if this is the issue.

Here is the code I am using, i made an empty gameobject and attached the script to it.

using UnityEngine;
using System.Collections;

public class KongregateAPI : MonoBehaviour 
{


    // SUBMIT STATISTICS WITH
    //Application.ExternalCall(“kongregate.stats.submit”,“MatchesMade”,1);


    private bool isKongregate = false;
    private int userId = 0;
    private string username = "Guest";
    private string gameAuthToken = "";


    // Should be called by Kongregate after connection is made
    void OnKongregateAPILoaded(string userInfoString)
    {
     // We now know we're on Kongregate
     isKongregate = true;

     // Split the user info up into tokens
       string[] paramArray = userInfoString.Split("|"[0]);
       userId = int.Parse(paramArray[0]);
       username = paramArray[1];
       gameAuthToken = paramArray[2];
    }

    void Awake()
    {
       //Keep it through all scenes
       DontDestroyOnLoad(this);
    }

    private void Start()
    {
       // Begin the API loading process if it is available
       Application.ExternalEval("if(typeof(kongregateUnitySupport) != ‘undefined’){" + " kongregateUnitySupport.initAPI(‘KongregateAPI’, ‘OnKongregateAPILoaded’);" + "}");
    }

    void OnGUI()
    {
       //Display if connected or if the connection failed
       if(isKongregate)
         GUI.Box(new Rect(100, 100, 300, 300), "CONNECTED \n userID: " + userId + "\n username: " + username + "\n gameAuthToken: " + gameAuthToken);
       else
         GUI.Box(new Rect(100, 100, 300, 300), "CONNECTION FAILED \n userID: " + userId + "\n username: " + username + "\n gameAuthToken: " + gameAuthToken);
    }
}

Thanks a lot for your time and help

 
Flag Post

sorry the code got squished is there any way to fix that?

 
Flag Post

Edit your post and add <pre> before your code and </pre> after your code.

 
Flag Post

Ok fixed how the code looked thanks UnkownGuardian

 
Flag Post

Fixed it! The gameobject I was trying to call did not have the same name as in the code (in the ExternalEval).

 
Flag Post

Hi BinaryArchitect,

I am trying to use your code, and all of the code you referenced, to no avail. I put the script on an empty GameObject and made a webplayer build. Then uploaded to Kongregate (still unpublished), but it never connects.

I am wondering if Kongregate changed things very recently. The Unity docs you referenced are no longer linked to on the website (although they do still exist). The docs now have something about embedding an html page to access the javaScript API

Is the code you posted still working for you?

 
Flag Post
Originally posted by MooseMouse:

Hi BinaryArchitect,

I am trying to use your code, and all of the code you referenced, to no avail. I put the script on an empty GameObject and made a webplayer build. Then uploaded to Kongregate (still unpublished), but it never connects.

I am wondering if Kongregate changed things very recently. The Unity docs you referenced are no longer linked to on the website (although they do still exist). The docs now have something about embedding an html page to access the javaScript API

Is the code you posted still working for you?

BinaryArchitect had a bug in the original post, so no, it’s not working. Also-