SDK
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`); });
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));