Skip to content

Instantly share code, notes, and snippets.

@tpai
Last active April 27, 2016 05:47
Show Gist options
  • Save tpai/b656f2e23a03678f0f01 to your computer and use it in GitHub Desktop.
Save tpai/b656f2e23a03678f0f01 to your computer and use it in GitHub Desktop.
SDK
var myId, myName
window.fbAsyncInit = function() {
FB.init({
appId: [YOUR_APP_ID],
channelUrl: "//" + window.location.hostname + "/channel.html",
xfbml: true
})
FB.getLoginStatus(function(response) {
if (response.status !== "connected") {
FB.login(function(res) {}, {
scope: "user_groups,friends_groups"
})
} else {
getMe()
getMyGroups()
}
})
FB.Event.subscribe('auth.statusChange', function(response) {
if (response.status === "connected") {
getMe()
getMyGroups()
}
});
};
var getMe = function() {
FB.api("/me", function(res) {
myId = res.id;
myName = res.name;
console.log(myName + " (" + myId + ")")
})
};
var getMyGroups = function() {
FB.api("/me/groups", function(res) {
$.each(res.data, function(key, val) {
console.log(val.name + " (" + val.id + ")")
})
})
};
var getGroupPosts = function(groupId) {
FB.api("/" + groupId + "/feed", function(res) {
$.each(res.data, function(key, val) {
var date = new Date(val.created_time)
var month = date.getUTCMonth() + 1
var day = date.getUTCDate()
var year = date.getUTCFullYear()
var fromWho = val.from.name
var fromId = val.from.id
var message = val.message
var comments = val.comments
})
})
};
var RenderPlainURLToHrefLink = function(text) {
if (text === undefined) return;
return text.replace(/(\(?(?:(http|https|ftp):\/\/)?(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\W\s]{2,4}|localhost(?=\/)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?)/ig, "<a href='$1' target='_blank'>$1</a>");
};
// Load the SDK Asynchronously
(function(d) {
var js, id = 'facebook-jssdk',
ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));

Import required scripts

<script src="https://cdnjs.cloudflare.com/ajax/libs/signalr.js/2.2.0/jquery.signalR.min.js"></script>
<script src="https://testsignalr2015.azurewebsites.net/signalr/hubs"></script>

Main script

// target url
let connection = $.hubConnection(`https://testsignalr2015.azurewebsites.net/signalr`, { useDefaultPath: false });
let chat = connection.createHubProxy(`chatHub`);

// event listener
chat.on(`addNewMessageToPage`, (name, message) => {
  console.log(name, message)
  $("#display").append(`<pre>${name}: ${message}</pre>`);
});

// init
connection.start()
  .done(function(){
    console.log(`Now connected, connection ID=${connection.id}`);
  
    $("#form").submit((e) => {
      // method trigger
      $("#msg").val() !== "" && chat.invoke(`send`, `Anonymous${new Date().getTime()}`, $("#msg").val())
        .done(() => console.log (`succeeded`))
        .fail(error => console.log(error));

      $("#msg").val("");
      e.preventDefault();
    });

  })
  .fail(function(){ console.log(`Could not connect`); });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment