Multi-platform Social Client for Node

Multi-platform Social Client for Node

This is general Social Client libs for most china's social network platforms.(iFrame Social Games)

  • "qq" - QZone/Pengyou
  • "wyx" - Sina Weiyouxi (Old style FB like, in-frame only, implemented)
  • "renren" - RenRen (OAuth2, implemented)
  • "qq" - QZone/Pengyou
  • "fb" - Facebook
  • Using node-oauth lib
  • The lib should be run on express/connect framework

How to use

var socialClient = require('social');
// you can create "social facetory" only once, and set to your app
var factory = socialClient({
    platform_nameA : {key: key, secret: secret},
    platform_nameB : {key: key, secret: secret}
}, isDebugMode); // some platform debug mode using defferent api
var snsInfo = factory.getAppEntryInfo( req ); // req is express/connect's request
var client = factory.createClient( snsInfo ); // Create a client by snsInfo
client.friends_ids(null, /* you can set some API additional parameters here */
  function(err, data){
  // for some api data will be including user's information

To support all platform , user's social information structure will be converted to a common structure:

   id           : String // User's ID in social platform
 , name         : String // User's Name in social platform
 , imageUrl     : String // User's image url
 , imageUrlLarge: String // User's large image url
 , gender       : Boolean// true is male , false is female
 , isSpecial    : Boolean// true means VIP of the social platform
 , specialType  : Number // User's vip level

And other special data for defferent platform will be still in the object

How to use QQ Payment

start a payment request

var client = factory.createClient( snsInfo ); // snsInfo can be stored in session, and using in each req
client.payment_request( param // "param" refer to
  , functino(err, data){
    /** importent parameter in data:
     *  token:      payment token id
     *  url_params: will using in frontend

Using social's common client JS or QQ's // refer to In this step, player will send payment request to QQ platform.

After step 2, QQ platform will request to your callback url

// QQ's request without user's snsinfo, but query including user's openid, you can get sns info from DB
var client = factory.createClient( "qq" ); // you also can create social client with string
// if you can get user's sns info, pls create client by snsInfo
client.payment_callback(req, res // express's req and res
 , function onSuccess(callback) {
    // this function will be called when "sig" checking succeeded
, function onFail(callback) {
    // this function will be called when "sig" checking failed
, function onDelivery(err, data){ // Optional
    // if you create client with sns info, this function will be called when delivery finished


  • acccount_info : get current user's info
    • support: all
  • friends_ids : get user's friends ids
    • support: all
  • appfriends_ids : get user's app friends(installed current application) ids
    • support: all
  • appfriends_info : get user's app friends detail info
    • support: all
  • is_app_user : check if the user installed current application
    • support: all
  • users_info : get user's info by ids array
    • support: all


  • implement Tencent logging system for qq
  • implement WeiYouXi payment

Contact me

  • Weibo:
  • Mail: btspoony[AT]