5

Profiles from stackexchange.com (the 'main site' for the meta here) don't one box when posted into chat.

See, for example, this message from the tavern (I figured if the onebox was going to work anywhere, it would work there).

enter image description here

The meta profiles work, but not the network-esque ones, such as those that you find linked from on http://stackexchange.com/about/team

  • And who said they should? The network profiles have a different structure, different code would be needed to one box them. It's just not implemented. – nicael Nov 15 '15 at 15:50
  • 1
    @nicael Its just that it is surprising that the links from the about/team from StackExchange.com, which look like they are regular profiles don't one box in chat. Yes, they are network profiles, but that functionality is a bit surprising as to why there is this one non-obvious exception at first glance. Especially when they are linked from a prominent page. – user213963 Nov 15 '15 at 15:52
6

While we wait for this bug/feature-request to be fixed/added, I've made a plugin for my Custom Oneboxes userscipt.

It uses the API to get the username, about me, profile picture, etc... and makes it look pretty:

enter image description here

To use it...

  1. Install the userscript
  2. Copy and paste the below code just above the -------------------------------- in the middle of the script.

You can find more information at the Stack Apps Post

customSites['stackexchange.com'] = function(link, $obj) {
    if(link.indexOf('/users/') > -1) {
        var user_id = link.split('/')[4];
        $.getJSON("http://api.stackexchange.com/2.2/users/"+user_id+"/associated", function(json) {
            var oldestSiteUserId = json.items[0].user_id;
            var oldestSite = json.items[0].site_url.split('/')[2].split('.')[0];
            var oldestSiteRealName = json.items[0].site_name;

            $.getJSON("http://api.stackexchange.com/2.2/users/"+oldestSiteUserId+"?order=desc&sort=reputation&site="+oldestSite+"&filter=!9YdnSA07B", function(json2) {
                var display_name = json2.items[0].display_name,
                    location = json2.items[0].location,
                    image = json2.items[0].profile_image,
                    about = json2.items[0].about_me;
                var template = '<div class="onebox ob-user">\
                    <div class="user-gravatar64">\
                        <a href="http://stackexchange.com/users/'+user_id+'">\
                            <img height="64" width="64" alt="" src="'+image+'">\
                        </a>\
                    </div>\
                    <div>\
                        <img width="20" height="20" src="http://sstatic.net/stackexchange/img/apple-touch-icon.png" >\
                        <a class="ob-user-username" style="color: #4E82C2;" href="http://stackexchange.com/users/'+user_id+'">'+display_name+'</a>, '+location+'\
                    </div>\
                    <div style="overflow: auto;    height: 50px;">\
                        '+about+'\
                    </div>\
                 </div>';

                 $obj.html(template);                
            });
        });        
    }
};

You must log in to answer this question.