Overview

Janrain supports the following Identity Providers. A complete listing of user profile data returned and supported features for each provider is also available in the Provider Guide and User Profile Data by Provider.

The provider specifier is a string used in calls to the Social Login API.

Some providers require extra configuration–for more information, follow one of the following links.

Providers whose deployment involves additional charges and configuration are marked with the badge:

Premium


Contact Janrain for more information.

Identity Providers

Premium Provider Name Provider String Specifier Provider Setup Guide Sample auth_info Response
Amazon amazon Amazon Setup Guide Amazon auth_info response
AOL aol AOL auth_info response
Blogger blogger Blogger auth_info response
Disqus disqus Disqus Setup Guide Disqus auth_info response
Premium DocCheck doccheck DocCheck Setup Guide DocCheck auth_info response
Premium Doximity doximity Doximity Setup Guide Doximity auth_info response
Facebook facebook Facebook Setup Guide Facebook auth_info response
Premium FiMnet fimnet FiMnet Setup Guide FiMnet auth_info response
Flickr flickr Flickr auth_info response
Foursquare foursquare Foursquare Setup Guide Foursquare auth_info response
Google+ googleplus Google+ Setup Guide Google+ auth_info response
Instagram instagram Instagram Setup Guide Instagram auth_info response
LinkedIn linkedin LinkedIn Setup Guide LinkedIn auth_info response
LiveJournal livejournal LiveJournal auth_info response
Premium MediKey medikey MediKey Setup Guide
Premium Medy medy Medy Setup Guide Medy auth_info response
Microsoft Account microsoftaccount Microsoft Account Setup Guide Microsoft Account auth_info response
Mixi mixi Mixi Setup Guide Mixi auth_info response
MYDIGIPASS.COM mydigipass MYDIGIPASS.COM Setup Guide MYDIGIPASS.COM auth_info response
Netlog netlog Netlog auth_info response
Odnoklassniki odnoklassniki Odnoklassniki Setup Guide Odnoklassniki auth_info response
Premium OneKey onekey OneKey Setup Guide OneKey auth_info response
OpenID openid OpenID auth_info response
PayPal paypal PayPal Setup Guide PayPal auth_info response
QQ qq QQ Setup Guide QQ auth_info response
Renren renren Renren Setup Guide Renren auth_info response
Salesforce salesforce Salesforce Setup Guide Salesforce auth_info response
Sina Weibo sinaweibo Sina Weibo Setup Guide Sina Weibo auth_info response
SoundCloud soundcloud SoundCloud Setup Guide SoundCloud auth_info response
Tencent Weibo tencentweibo Tencent Weibo Setup Guide Tencent Weibo auth_info response
Tumblr tumblr Tumblr Setup Guide Tumblr auth_info response
Twitter twitter Twitter Setup Guide Twitter auth_info response
VeriSign verisign VeriSign auth_info response
VK vk VK Setup Guide VK auth_info response
WeChat wechat WeChat Setup Guide WeChat auth_info response
WordPress wordpress WordPress auth_info response
Xing xing Xing Setup Guide Xing auth_info response
Yahoo! yahoo Yahoo! Setup Guide Yahoo! auth_info response

Amazon

Amazon Setup Guide

There are two ways to to set up Amazon as an identity provider (that is, create an Amazon application):

  1. Through the Amazon Developer Portal (https://developer.amazon.com/login-with-amazon). Use this method if you want to let your end users authenticate with Amazon, but you don’t have a Seller Central account.
  2. Through Seller Central (via http://login.amazon.com). Use this method if you are a retail merchant that uses Seller Central.

Setting up Amazon through the Amazon Developer Portal

To set up Amazon through the Amazon Developer Portal, follow these steps:

  1. Sign in to the Janrain Dashboard (https://dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click Amazon.
  5. Click Configure. The Provider Setup Guide is displayed.

    Amazon Provider Setup Guide, Intro Page
  6. On the Setup Guide, click Next.

    Amazon Provider Setup Guide, Enter App Info
  7. Sign in to the Amazon Developer Portal (https://developer.amazon.com/login-with-amazon). If you do not have an account, you will need to create one. The Dashboard page is displayed.

    Amazon Development Portal, Dashboard
  8. On the primary upper navigation bar, click APPS & SERVICES.

  9. On the secondary upper navigation bar, click Login with Amazon.

  10. Click Create a New Security Profile.

    Amazon Development Portal, Create a New Security Profile
  11. Create a new security profile by entering the requested values, and click Save.

    Amazon Development Portal, Create a Security Profile
  12. In the Manage menu, select Web Settings.

    Amazon Development Portal, Security Profile Web Settings
  13. On the Security Profile Web Settings page, click Edit.

    Amazon Development Portal, Security Profile Web Settings (edit)
  14. Copy the Allowed Return URLs from the Amazon Provider Setup Guide and paste them to the Security Profile Web Settings page.

  15. On the Security Profile Web Settings page, click Save.

  16. On the Security Profile Web Settings page, click the General tab to display the General Settings page.

    Amazon Development Portal, Security Profile General Settings
  17. On the Setup Guide, click Next.

    Amazon Provider Setup Guide, Client ID and Secret
  18. Copy the Client ID and Client Secret from the Amazon Development Portal and paste them to the Provider Setup Guide.

  19. On the Amazon Provider Setup Guide, click Save.

Your Amazon app is now configured and Amazon is available as a Social Login identity provider.

Setting up Amazon through Seller Central

To set up Amazon through Seller Central, follow these steps:

  1. Sign in to the Janrain Dashboard (https://dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click Amazon.
  5. Click Configure. The Provider Setup Guide is displayed.

    Amazon Provider Setup Guide, Intro Page
  6. Click the link to log in to your Amazon AWS, Appstore, or Seller Central account. If you do not have an account, you will need to create one.

  7. On the Amazon application dashboard, click Register new application.

    Amazon App Dashboard, Register New Application
  8. The Application Information section appears. Fill out the application fields and click Save.

    Amazon App Dashboard, Application Information
  9. On the Setup Guide, click Next.

    Amazon Provider Setup Guide, Enter App Info
  10. On the Amazon application dashboard:

    1. Click Web Settings.
    2. Click Edit.
    3. Copy the Allowed Return URLs from the Provider Setup Guide and paste them to the Amazon application dashboard.
    4. Click Save.

      Amazon App Dashboard, Web Settings
  11. On the Setup Guide, click Next.

    Amazon Provider Setup Guide, Client ID and Secret
  12. Copy the Client ID and Client Secret from the Amazon App Dashboard Web Settings section and paste them to the Provider Setup Guide.

  13. On the Amazon Provider Setup Guide, click Save.

  14. Close the Amazon App Dashboard page.

Your Amazon app is now configured and Amazon is available as a Social Login identity provider.

Amazon auth_info Response

The JSON sample below shows an example of the profile data that Amazon returns. Amazon can change their profile response at any time, so be sure to test their current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "Amazon",
    "identifier": "http://www.amazon.com/amzn1.account.123456789ABCD123456789ABCD1",
    "displayName": "Example",
    "name": {
      "formatted": "Example"
    },
    "email": "example@example.com",
    "address": {
      "postalCode": "90000"
    },
    "providerSpecifier": "amazon"
  },
  "merged_poco": {
    "id": "http://www.amazon.com/amzn1.account.123456789ABCD123456789ABCD1",
    "displayName": "Example",
    "name": {
      "formatted": "Example"
    },
    "emails": [
      {
        "value": "example@example.com",
        "type": "other",
        "primary": true
      }
    ],
    "addresses": [
      {
        "postalCode": "90000"
      }
    ]
  },
  "accessCredentials": {
    "accessToken": "ABCD123456789ABCD123456789ABCD1-ABCD123456789ABCD123456789ABCDABCD123456789ABCD123456789ABCD-123-1234567-ABCD123456789ABCD123456789ABCD12345678-ABCD123456789ABCD123456789A-ABCD123456789ABCD123456789ABCD-123456789AB-ABCD123456789ABCD123456789ABCDABCD123456789ABCD123456789ABCDABCD123456789ABCD123456789ABCDABCD123456789ABCD123456789ABCD-123456",
    "uid": "amzn1.account.123456789ABCD123456789ABCD1",
    "expires": 1365694776,
    "refreshToken": "123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1-12345678912345-123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1123456789ABCD123456789ABCD1-12123456789ABCD123456789ABCD1-1-123456789123456789",
    "scopes": [
      "postal_code",
      "profile"
    ],
    "type": "oauth2"
  }
}

AOL

AOL auth_info Response

The JSON sample below shows an example of the profile data that AOL returns. AOL can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "profile": {
    "displayName": "rpxdoc",
    "preferredUsername": "rpxdoc",
    "url": "http://openid.aol.com/rpxdoc",
    "providerName": "AOL",
    "identifier": "http://openid.aol.com/rpxdoc"
  },
  "merged_poco": {
    "urls": [
      {
        "type": "other",
        "value": "http://openid.aol.com/rpxdoc"
      }
    ],
    "preferredUsername": "rpxdoc"
  },
  "stat": "ok"
}

Blogger

Blogger auth_info Response

The JSON sample below shows an example of the profile data that Blogger returns. Blogger can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "profile": {
    "displayName": "rpxdoc",
    "preferredUsername": "rpxdoc",
    "url": "http://rpxdoc.blogspot.com/",
    "providerName": "Blogger",
    "identifier": "http://rpxdoc.blogspot.com/"
  },
  "merged_poco": {
    "urls": [
      {
        "type": "other",
        "value": "http://rpxdoc.blogspot.com/"
      }
    ],
    "preferredUsername": "rpxdoc"
  },
  "stat": "ok"
}

Disqus

Disqus Setup Guide

To set up Disqus, follow these steps:

  1. Sign in to the dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button ( Manage Engage App button ) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Disqus.
  5. Click Configure. The Provider Setup Guide is displayed.

    disqus-1
  6. Go to the Disqus developer site. If you don’t already have an account, create one.

  7. Go to http://disqus.com/api/applications/.

  8. On the right hand side of the Applications panel, click Register New Application. A new page requesting information is displayed.

  9. In the Label field, enter the name of your application.

  10. Enter a Description of your app.

  11. Enter the name of your Organization.

  12. Enter your application’s Website (URL).

  13. Enter the CAPTCHA near the bottom of the page, then click Register My Application.

  14. On the Configuration pop-up, click Next.

  15. On the new Disqus page, about halfway down, in the Settings section, there is a text box for Domains. Paste the Trusted Domain from the previous step here.

  16. At the bottom of the page, click Save Changes.

  17. Click the Details tab. Scroll down until you can see API Key and API Secret.

  18. Copy the API Key.

  19. Back on the pop-up, click Next.

  20. Paste the API Key you previously copied into the first field in the pop-up.

  21. On the Disqus page, copy the API Secret.

  22. On the pop-up, paste the API Secret.

  23. Click Next.

    disqus-2

Your Disqus provider is now configured and available as an option for Social Login.

Disqus auth_info Response

The JSON sample below shows an example of the profile data that Disqus returns. Disqus can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "providerName": "Disqus",
    "identifier": "http://disqus.com/20Blah44",
    "preferredUsername": "RpxDoc",
    "displayName": "Tony Balogna",
    "name": {
      "formatted": "Tony Balogna"
    },
    "url": "http://disqus.com/RpxDoc/",
    "photo": "https://securecdn.disqus.com/uploads/users/1RS4/4321/avatar32.jpg?13Blahxx22",
    "address": {
      "formatted": "little beirut"
    }
  },
  "merged_poco": {
    "id": "http://disqus.com/20Blah44",
    "displayName": "Tony Balogna",
    "preferredUsername": "RpxDoc",
    "aboutMe": "I came, I saw, I tested.",
    "profileUrl": "http://disqus.com/RpxDoc/",
    "currentLocation": {
      "formatted": "little beirut"
    },
    "name": {
      "formatted": "Tony Balogna"
    },
    "urls": [
      {
        "value": "http://rpxdoc.com/somebodyspecial",
        "type": "website"
      },
      {
        "value": "http://disqus.com/RpxDoc/",
        "type": "profile"
      }
    ],
    "addresses": [
      {
        "formatted": "little beirut"
      }
    ],
    "photos": [
      {
        "value": "https://securecdn.disqus.com/uploads/users/1RS4/4321/avatar92.jpg?13Blahaa22",
        "type": "normal"
      },
      {
        "value": "https://securecdn.disqus.com/uploads/users/1RS4/4321/avatar32.jpg?13Blahaa22",
        "type": "small"
      },
      {
        "value": "https://securecdn.disqus.com/uploads/users/1RS4/4321/avatar92.jpg?13Blahaa22",
        "type": "large"
      }
    ],
    "accounts": [
      {
        "domain": "twitter.com",
        "userid": "blah16628"
      },
      {
        "domain": "google.com",
        "userid": "4b59aeBlahBlahBlah602eadc69bedec"
      }
    ]
  },
  "followers": [
    "http://disqus.com/blah5678",
    "http://disqus.com/blah4321",
    "http://disqus.com/blah5678"
  ],
  "following": [
    "http://disqus.com/blah5678",
    "http://disqus.com/blah4321",
    "http://disqus.com/blah5678"
  ],
  "friendships": [
    "http://disqus.com/blah4321",
    "http://disqus.com/blah5678"
  ],
  "accessCredentials": {
    "accessToken": "161b51BlahBlahBlah7f9c7f430d37d0",
    "uid": "20Blah44",
    "expires": 1349650216,
    "refreshToken": "36e042BlahBlahBlah30e1184c3c1391",
    "type": "oauth2"
  }
}

DocCheck

Premium

DocCheck Setup Guide

Before You Start

  • Configuration requires an existing license with DocCheck.
  • Use of DocCheck may result in additional Janrain configuration charges. Please contact Janrain for more information.

DocCheck Identity Provider Setup

To set up DocCheck as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click DocCheck.
  5. Click Configure. This starts the DocCheck Setup Wizard.

    doccheck-1
  6. Log in to DocCheck.

  7. Navigate to Password Protection > Login Administration.

  8. Click Create Login.

  9. On the setup wizard, click Next.

  10. Copy the Target URL from the setup wizard.

  11. Return to the DocCheck Create Login page. Fill in the desired values, and paste in the Target URL from the setup wizard.

  12. Complete the Create Login page.

  13. Copy the Login ID and Secret Key from the newly-created login and add them to the appropriate text boxes in the setup wizard.

    doccheck-2
  14. Click Save.

DocCheck is now configured as an identity provider and is selectable on the Janrain Dashboard.

DocCheck auth_info Response

The JSON sample below shows an example of the profile data that DocCheck returns. Providers may change their profile response at any time, so be sure to test their current response.

{
    "stat": "ok",
    "profile": {
        "providerName": "DocCheck",
        "identifier": "http://doccheck.com/bd0d611c297ef4e51b2688e04f977cea",
        "verifiedEmail": "info@doccheck.com",
        "name": {
            "formatted": "Example_äüöß Example_ÄÖÜ",
            "givenName": "Example_äüöß",
            "honorificPrefix": "Dr.",
            "familyName": "Example_ÄÖÜ",
        },
        "email": "info@doccheck.com",
        "address": {
            "streetAddress": "Example_éèî",
            "locality": "Köln",
            "postalCode": "50823",
            "country": "US",
        },
        "gender": "female",
        "providerSpecifier": "doccheck"
    },
}

Doximity

Premium

Doximity Setup Guide

Before You Start

  • To configure Doximity as an identity provider, you need:
    • An existing license with Doximity.
    • A Doximity authentication endpoint. Contact Doximity and provide the Redirect URI found on the Doximity Setup Wizard (see the Doximity Identity Provider Setup).
  • Using Doximity may result in additional Janrain configuration charges. Contact Janrain for more information.

Doximity Identity Provider Setup

To set up Doximity as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App (Manage Engage App button) button corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click Doximity.
  5. Click Configure. This starts the Doximity Setup Wizard.

    Doximity Configure Dialog
  6. Contact Doximity and request an authentication endpoint. Give them the Redirect URI displayed on the setup wizard.

  7. Click Next.

    doximity-config-dialog-p21
  8. Once an endpoint is created, paste the Doximity Client ID and Client Secret to the setup wizard.

  9. Click Save.

Doximity is now configured as an identity provider and is selectable on the Janrain Dashboard.

Doximity auth_info Response

The JSON sample below shows an example of the profile data that Doximity returns. Providers may change their profile response at any time, so be sure to test their current response.

{
  "stat": "ok",
  "profile": {
    "address": {
      "formatted": "500 3rd Street suite 300 San Francisco, CA 94107",
      "locality": "San Francisco",
      "postalCode": "94107",
      "region": "CA",
      "streetAddress": "500 3rd Street suite 300"
    },
    "displayName": "DoxAPI Test 2",
    "email": "DoxAPITestJanrain@doximity.com",
    "gender": "M",
    "identifier": "https://www.doximity.com/profile/6908331",
    "name": {
      "familyName": "Test 2",
      "formatted": "DoxAPI Test 2",
      "givenName": "DoxAPI",
      "honorificSuffix": "Other"
    },
    "phoneNumber": "(503) 555-5534",
    "photo": "https://doximity-res.cloudinary.com/image/upload/t_profile_photo_320x320/v1447115377/qpwp0a3vzaqoooife2e7.jpg",
    "providerName": "Doximity",
    "providerSpecifier": "doximity",
    "provider_id": "6908331"
  },
  "merged_poco": {
    "aboutMe": "\"dentist\" 牙医",
    "addresses": [
      {
        "formatted": "500 3rd Street suite 300 San Francisco, CA 94107",
        "locality": "San Francisco",
        "postalCode": "94107",
        "region": "CA",
        "streetAddress": "500 3rd Street suite 300"
      },
      {
        "formatted": "519 SW 3rd AVE suite 300 Portland, OR 97204",
        "locality": "Portland",
        "postalCode": "97204",
        "region": "OR",
        "streetAddress": "519 SW 3rd AVE suite 300"
      }
    ],
    "connected": false,
    "displayName": "DoxAPI Test 2",
    "emails": [
      {
        "primary": true,
        "type": "work",
        "value": "DoxAPITestJanrain@doximity.com"
      }
    ],
    "gender": "M",
    "id": "https://www.doximity.com/profile/6908331",
    "name": {
      "familyName": "Test 2",
      "formatted": "DoxAPI Test 2",
      "givenName": "DoxAPI",
      "honorificSuffix": "Other"
    },
    "organizations": [
      {
        "name": "OHSU Hospital",
        "type": "job"
      }
    ],
    "phoneNumbers": [
      {
        "primary": true,
        "type": "work",
        "value": "(503) 555-5534"
      },
      {
        "type": "fax",
        "value": "5036655555"
      }
    ],
    "photos": [
      {
        "primary": true,
        "type": "work",
        "value": "https://doximity-res.cloudinary.com/image/upload/t_profile_photo_320x320/v1447115377/qpwp0a3vzaqoooife2e7.jpg"
      }
    ],
    "urls": [
      {
        "type": "profile",
        "value": "https://www.doximity.com/profile/6908331"
      }
    ]
  },
  "accessCredentials": {
    "accessToken": "YorbwCNDiSyeLYXrr4N5MLWLAafm7vJr_1UvXUAyLP7fxEoYnI4OkvtqW3YHWJ74cZjRlX05FL28ZzCYG0ZwlQ==",
    "clientId": "e335713734beb1bb3093e8b7c895f7406eec2ff8a6e29afaac451661748ee834",
    "expires": 1453162620,
    "scopes": "email,basic",
    "type": "oauth2",
    "uid": "6908331"
  },
  "provider": {
    "doximity": {
      "account_id": 696778,
      "additional_credentials": null,
      "additional_locations": [
        {
          "address_1": "519 SW 3rd AVE",
          "address_2": "suite 300",
          "city": "Portland",
          "fax": null,
          "id": 18977,
          "latitude": 45.5193188,
          "longitude": -122.6751503,
          "phone": "5038885555",
          "state": "OR",
          "zip": "97204"
        }
      ],
      "address_1": "500 3rd Street",
      "address_2": "suite 300",
      "city": "San Francisco",
      "clinical_interests": [
        "Orthotic Devices"
      ],
      "colleague_count": 0,
      "country": "United States",
      "credentials": "Other",
      "description": "\"dentist\" 牙医",
      "email": "DoxAPITestJanrain@doximity.com",
      "fax": "5036655555",
      "first_name": "DoxAPI",
      "full_name": "DoxAPI Test 2",
      "gender": "M",
      "has_uploaded_profile_photo": true,
      "hospitals": [
        {
          "aha_id": 6920570,
          "logo_url": null,
          "name": "OHSU Hospital"
        }
      ],
      "id": 6908331,
      "inbound_fax_number": null,
      "last_name": "Test 2",
      "lat": 37.7808435,
      "lon": -122.3958158,
      "maiden_name": null,
      "medical_school": null,
      "middle_name": null,
      "npi": null,
      "phone": "(503) 555-5534",
      "profile_photo": "https://doximity-res.cloudinary.com/image/upload/t_profile_photo_320x320/v1447115377/qpwp0a3vzaqoooife2e7.jpg",
      "public_profile_url": null,
      "registered": true,
      "registered_on_oauth_authorization": false,
      "residencies": [

      ],
      "roles": [

      ],
      "specialty": "Dentist",
      "specialty_details": {
        "abbr": "Dentist",
        "code": "DT00",
        "credential_id": 6,
        "id": "DT00",
        "name": "Dentist"
      },
      "state": "CA",
      "subspecialties": [
        "General Dentistry"
      ],
      "verified": false,
      "zip": "94107"
    }
  }
}

Facebook

Facebook Setup Guide

To set up Facebook as a Social Login provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click Facebook.
  5. Click Configure. The Provider Setup Guide appears.

    facebook-1.png
  6. If you already have a Facebook application:

    1. Navigate to developers.facebook.com/apps to retrieve configuration information.
    2. Skip to the final page of the Facebook Setup Wizard by clicking Next.
    3. Enter the App ID and App Secret values.
    4. Click Save.
  7. If you have not already set up a Facebook application, continue with the following steps (which correspond to the Provider Setup Guide instructions).

  8. If you do not have a Facebook developer’s account, create one.

  9. Sign in to Facebook, and navigate to https://developers.facebook.com/apps.

  10. Allow Developer access to your account if prompted.

  11. On the Provider Setup Guide, Click Next.

  12. On the Apps page, click Create New App. The Facebook Apps page appears.

  13. On the Facebook Apps page, enter a Display Name (application name). This name will be seen by each of your Facebook visitors at least once, so take care in selecting this name.

  14. Enter an optional Namespace.

  15. Select YES or NO to answer the question “Is this a test version of another app?”

    1. If you selected YES, in the Choose an App list, click an existing application name.
    2. If you selected NO, in the Choose a Category list, click a category for the new application.
  16. Click Create App. A Security Check dialog is displayed.

  17. Enter the displayed text in the box and click Submit.

  18. On the Provider Setup Guide, click Next.

  19. On the left navigation bar of the Apps page, click Settings.

    facebook-2
  20. Click Add Platform. The Select Platform dialog appears.

  21. Click Website. A new Website section appears on the Apps page.

    facebook-3
  22. Register your website with the newly-created Facebook application by copying the Site URL value from the Provider Setup Guide and pasting it into the Site URL box in the Website section. This URL should be of the format https://yoursite.rpxnow.com.

  23. Check that your Basic information is correct and click Save Changes.

  24. Return to the Provider Setup Guide and click Next.

  25. On the Apps page, click App Details in the left navigation panel.

    facebook-4
  26. In the Contact Info section, enter a Privacy Policy URL.

  27. If you are requesting permissions beyond that of the basic user profile:

    1. Enter text in the Short Description and Long Description boxes explaining how the permissions will be used. For example, “We request your interest data to personalize your experience on our site.”
    2. Click Save Changes at the bottom of the page.
    3. Return to the Provider Setup Guide and click Next.
  28. On the Apps page, scroll down to the Contact Info section. Enter your company’s Privacy Policy URL (this is required).

  29. On the left navigation bar, click Settings.

  30. Copy the App ID and App Secret values at the top of the page and paste them to the corresponding boxes on the Provider Setup Guide.

    facebook-5
  31. On the Provider Setup Guide, click Save. The remainder of the setup process is automated and finishes in seconds. You may now add Facebook as a Social Login provider on the Janrain Dashboard.

Facebook auth_info Response

The JSON sample below shows an example of the profile data that Facebook returns. Facebook can change their profile response at any time, so be sure to test their current response.

Note: Facebook has the largest profile response of all identity providers.

Note: The Addresses object only returns the city and state.

{
    "stat": "ok",
    "profile": {
        "providerName": "Facebook",
        "identifier": "http://www.facebook.com/profile.php?id=100BlahBlah7767",
        "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
        "preferredUsername": "RpxDoc",
        "displayName": "Rpx Doc",
        "name": {
            "formatted": "Rpx Doc",
            "givenName": "Rpx",
            "familyName": "Doc"
        },
        "email": "rpxdoc@yahoo.com",
        "url": "http://www.facebook.com/rpx.doc",
        "photo": "https://graph.facebook.com/100BlahBlah7767/picture?type=large",
        "utcOffset":"-08:00",
        "address": {
            "formatted": "Portland, Oregon",
            "type": "currentLocation"
        },
        "birthday": "1994-05-19",
        "gender": "female"
    },
    "merged_poco": {
        "id": "http://www.facebook.com/profile.php?id=100BlahBlah7767",
        "displayName": "Rpx Doc",
        "preferredUsername": "RpxDoc",
        "gender": "female",
        "aboutMe": "i test stuff",
        "profileUrl": "http://www.facebook.com/rpx.doc",
        "relationshipStatus": "Widowed",
        "religion": "u0627u0644u0627u0633u0644u0627u0645",
        "status": "set_status timestamp test: Wed, 17 Oct 12 21:36:34 +0000",
        "currentLocation": {
            "formatted": "Portland, Oregon"
        },
        "politicalViews": "Bude mu00edt toto vejce vu00edce fanouu0161ku016f neu017e Jiu0159u00ed Paroubek ?",
        "name": {
            "formatted": "Rpx Doc",
            "givenName": "Rpx",
            "familyName": "Doc"
        },
        "updated": "2012-09-13T00:44:03.000Z",
        "birthday": "1994-05-19",
        "utcOffset":"-08:00",
        "emails": [
            {
                "value": "rpxdoc@yahoo.com",
                "type": "other",
                "primary": true
            }
        ],
        "languagesSpoken": [
            "Pig Latin"
        ],
        "urls": [
            {
                "value": "http://www.facebook.com/rpx.doc",
                "type": "profile"
            },
            {
                "value": "http://www.facepalm.org",
                "type": "other"
            },
            {
                "value": "http://foo.com",
                "type": "other"
            }
        ],
        "addresses": [
            {
                "formatted": "Portland, Oregon",
                "type": "currentLocation"
            },
            {
                "formatted": "Luxembourg",
                "type": "hometown"
            }
        ],
        "books": [
            "Dr. Seuss' The Cat in the Hat",
            "Good Omens"
        ],
        "movies": [
            "Gigli",
            "Big Trouble in Little China"
        ],
        "music": [
            "My favorite playlist",
            "Country music",
            "Western"
        ],
        "tvShows": [
            "Voltran",
            "American Idol",
            "ThunderCats",
            "Seinfeld"
        ],
        "quotes": [
            "I'm getting ENOSPACE writing to /dev/null."
        ],
        "interests": [
            "Justin Bieber"
        ],
        "sports": [
            "Frolf",
            "Underwater hockey"
        ],
        "heroes": [
            "Donkey",
            "Shrek"
        ],
        "activities": [
            "Underwater basket weaving"
        ],
        "photos": [
            {
                "value": "https://graph.facebook.com/100BlahBlah7767/picture?type=small",
                "type": "other"
            },
            {
                "value": "https://graph.facebook.com/100BlahBlah7767/picture?type=large",
                "type": "other",
                "primary": true
            },
            {
                "value": "https://graph.facebook.com/100BlahBlah7767/picture?type=square",
                "type": "other"
            },
            {
                "value": "https://graph.facebook.com/100BlahBlah7767/picture?type=normal",
                "type": "other"
            }
        ],
        "organizations": [
            {
                "name": "Janrain",
                "title": "Tester",
                "type": "job",
                "startDate": "2007-05",
                "description": "I am."
            },
            {
                "name": "Janrain",
                "title": "a wee tester",
                "type": "job",
                "startDate": "0000-00",
                "description": "something clever"
            },
            {
                "name": "Janrain",
                "title": "To Test",
                "type": "job",
                "startDate": "2009-01",
                "endDate": "2009-02"
            },
            {
                "name": "Janrain",
                "title": "Testing Monkey",
                "type": "job",
                "startDate": "2006-02",
                "endDate": "2005-02",
                "description": "I was."
            },
            {
                "name": "School Of Rock",
                "type": "High School"
            },
            {
                "name": "Hogwarts School of Witchcraft and Wizardry",
                "type": "College"
            }
        ]
    },
    "friends": [
        "http://www.facebook.com/profile.php?id=1234BlahBlah254",
        "http://www.facebook.com/profile.php?id=1234BlahBlah434",
        "http://www.facebook.com/profile.php?id=1234BlahBlah662"
    ],
    "provider": {
        "facebook": {
            "albums": [
                {
                    "id": "326BlahBlah6808",
                    "name": "Untitled Album",
                    "link": "http://www.facebook.com/album.php?fbid=1234BlahBlah808&id=100BlahBlah7767&aid=78839",
                    "privacy": "custom",
                    "type": "normal"
                },
                {
                    "id": "326BlahBlah0163",
                    "name": "Timeline Photos",
                    "link": "http://www.facebook.com/album.php?fbid=326BlahBlah0163&id=100BlahBlah7767&aid=78838",
                    "privacy": "everyone",
                    "type": "wall"
                },
                {
                    "id": "322BlahBlah7306",
                    "name": "Cover Photos",
                    "link": "http://www.facebook.com/album.php?fbid=322BlahBlah7306&id=100BlahBlah7767&aid=77860",
                    "privacy": "everyone",
                    "type": "normal"
                },
                {
                    "id": "322BlahBlah1017",
                    "name": "Untitled Album",
                    "link": "http://www.facebook.com/album.php?fbid=322BlahBlah1017&id=100BlahBlah7767&aid=77858",
                    "privacy": "custom",
                    "type": "normal"
                },
                {
                    "id": "102BlahBlah3100",
                    "name": "Profile Pictures",
                    "link": "http://www.facebook.com/album.php?fbid=102BlahBlah3100&id=100BlahBlah7767&aid=4035",
                    "privacy": "everyone",
                    "type": "profile"
                }
            ],
            "games": [
                {
                    "name": "Axis & Allies",
                    "category": "Interest",
                    "id": "124BlahBlah6166"
                },
                {
                    "name": "UNO",
                    "category": "Games/toys",
                    "id": "123BlahBlah6939"
                }
            ],
            "groups": [
                {
                    "name": "Test group",
                    "id": "123BlahBlah2994"
                },
                {
                    "name": "Exploratory Group",
                    "id": "123BlahBlah7259"
                }
            ],
            "videos": [
                {
                    "id": "350BlahBlah1104",
                    "description": "a super awesome movie!!!",
                    "picture": "http://example.com/hvthumb-ak-snc6/245400_350BlahBlah1061_350BlahBlah1104_2773_417_t.jpg",
                    "icon": "http://example.com/rsrc.php/v2/yD/r/DggBlahz4tO.gif",
                    "embed_html": "",
                    "source": "http://example.com/cfs-ak-ash4/v/34xyz3/743/350BlahBlah1104_8269.mp4?oh=3f74c5a67BlahBlah33eb2d7f72d0dc1&oe=5080CF78&__gda__=1350674533_97d8568b1a07387e4cee5d02d87262b9"
                },
                {
                    "id": "123BlahBlah7762",
                    "description": "what what!",
                    "picture": "http://example.com/hvthumb-ak-ash4/245318_350BlahBlah4397_350BlahBlah7762_37327_361_t.jpg",
                    "icon": "http://example.com/rsrc.php/v2/yD/r/DggBlahz4tO.gif",
                    "embed_html": "",
                    "source": "http://example.com/cfs-ak-snc7/v/610161/125/350BlahBlah7762_24214.mp4?oh=3f527BlahBlahBlahBlah8dd9c665ba0&oe=5080F026&__gda__=1350Blah08_f3da7404BlahBlah6f886b3fce52ea4a"
                }
            ]
        }
    },
    "limited_data": "false",
    "accessCredentials": {
        "accessToken": "AAAFArLqJQIBlahBlaha0rCdu9m5d5fBlahBlahFKYWpp401H9LGf5rQasuZAzrMyoZA9J45FDSZACLyNCXkAZAgpDFr0hG8NBkb8CccXXuQZDZD",
        "uid": "100BlahBlah7767",
        "expires": 1355690751,
        "scopes": "email,publish_stream,user_birthday,user_location,user_hometown,user_relationships,user_interests,user_about_me,user_photos,user_work_history,friends_hometown,friends_interests,friends_relationships,friends_photos,friends_location,friends_about_me,friends_birthday,friends_work_history,read_stream,read_insights,create_event,rsvp_event,sms,read_requests,read_mailbox,read_friendlists,xmpp_login,ads_management,manage_pages,user_checkins,friends_checkins,publish_checkins,user_online_presence,friends_online_presence,user_education_history,friends_education_history,user_religion_politics,friends_religion_politics,user_likes,manage_notifications,friends_actions.music,user_actions.music,user_activities,friends_likes,friends_relationship_details,publish_actions,friends_events,user_notes,friends_notes,friends_questions,friends_videos,user_website,friends_status,friends_activities,manage_friendlists,user_events,user_groups,friends_groups,user_questions,user_videos,friends_website",
        "type": "Facebook"
    }
}

FiMnet

Premium

FiMnet Setup Guide

Before You Start

  • To configure FiMnet as an identity provider, you need:
    • An existing license with FiMnet.
    • A FiMnet authentication endpoint. Contact FiMnet and provide the Return URL found on the FiMnet Setup Wizard (see the FiMnet Identity Provider Setup).
  • Using FiMnet may result in additional Janrain configuration charges. Contact Janrain for more information.

FiMnet Identity Provider Setup

To set up FiMnet as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click FiMnet.
  5. Click Configure. This starts the FiMnet Setup Wizard.

    fimnet-1
  6. Contact FiMnet and request an authentication endpoint. You will need to provide the Return URL displayed on the setup wizard.

  7. Once an endpoint is created, paste it to the Authentication URL box.

  8. Click Save.

FiMnet is now configured as an identity provider and is selectable on the Janrain Dashboard.

FiMnet auth_info Response

The JSON sample below shows an example of the profile data that FiMnet returns. Providers may change their profile response at any time, so be sure to test their current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "FiMnet",
    "identifier": "http://fimnet.fi/pfizde-1",
    "displayName": "Demo Pfizer",
    "name": {
      "formatted": "Demo Pfizer"
    },
    "providerSpecifier": "fimnet"
  },
  "merged_poco": {
    "id": "http://fimnet.fi/pfizde-1",
    "displayName": "Demo Pfizer",
    "name": {
      "formatted": "Demo Pfizer"
    }
  },
  "provider": {
    "fimnet": {
      "membership": "0020",
      "subservices": "PFIZER,PFIZERLAAKARI"
    }
  }
}

Flickr

Flickr auth_info Response

The JSON sample below shows an example of the profile data that Flickr returns. Flickr can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "preferredUsername": "Rpx",
    "url": "http://profile.yahoo.com/DSFKBlahBlahBlahQY34YDESFI",
    "gender": "male",
    "photo": "http://l.yimg.com/a/i/identity2/profile_192d.png",
    "name": {
        "formatted":"Rpx Doc",
        "givenName":"Rpx",
        "familyName":"Doc"
    },
    "email": "rpxdoc@blahoo.com",
    "birthday":"1980-01-01",
    "displayName":"Rpx",
    "utcOffset": "-08:00",
    "address": {"formatted": "Oregon"},
    "identifier": "https://me.yahoo.com/a/AqqhBlahBlahBlah9TrOSE7mU3E-#223bc",
    "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
    "providerName": "Blahoo"
    },
  "merged_poco": {
    "preferredUsername": "Rpx",
    "nickname": "Rpx",
    "birthday":"1980-01-01",
    "profileUrl": "http://profile.blahoo.com/DSFKBlahBlahBlahQY34YDESFI",
    "urls": [{"type":"profile","value":"http://profile.blahoo.com/DSFKBlahBlahBlahQY34YDESFI"}],
    "gender": "male",
    "photos": [{
      "value":"http://l.yimg.com/a/i/identity2/profile_1xxd.png",
      "type":"other"
      }],
    "name": {
        "formatted":"Rpx Doc",
        "givenName":"Rpx",
        "familyName":"Doc"
    },
    "languagesSpoken": ["en-US"],
    "currentLocation": {"formatted": "Oregon"},
    "updated": "2012-09-05T16:18:51Z",
    "emails": [{
      "value":"rpxdoc@blahoo.com",
      "type":"other"
      }],
    "displayName": "Rpx",
    "status":"set_status timestamp test: Tue, 25 Sep 12 17:57:54 +0000",
    "utcOffset": "-08:00"
  },
  "accessCredentials": {
    "oauthToken": "A=BIH1TjjPml0d70r_QWIBlahBlahBlahWsCd6UA2yh3.lN0AvOcOu.FXMQLxItoop__K.TSUaoBlahBlahBlahprdw6W6En.49jWqx.DtvGNiqQJ5KVsY3gWp_NlViBlahBlahBlahFe2hhMMGXnO7TIc0l61fk6HkOTrEVseC6DQC_5Bw7HQLY9K.9BCpBlahBlahBlahsDXECVXMXfXyvPSOPE0u505gXI5nzRC4XXpbSDFc9IBo7FO8cK0vNu6hmbRF4SWyKZVlVC8hK2M9clVl1K8ORjNMTL.U3EP_ouw_dQiZc_8wH1vOIMDCzzDODKRDjcy2nERZ1w1dU8EvxeuJMBG6CxXGg4txxW5Pk9ZJA6_MTs6tkPJw_0XsV0macMctMGAkndCmW0Xoy6HanP.Q_5r71FJ3hTg6I1bu2Lk6siPQDpjVizPfbswxuq.I2i3pjZ5R8LqB2NxyNu14B0SsZtZgARumXODsEfcZs1cRi_DTqq0_M3nK6FARR91E2jOXJmIh7bBPCgrtMJBbpM_pfS_06wiOK2L3FES.hXA5PwxFJeleBmrjMlJa4.4aTagOg21M2Nkz8XNkDUus55v31gSDmwxNPxR1a36VeItMdC0tuYJQ70ddefnk.MDIiReCk_Umx7ZahZ8ECs8Q.wCd5srI45D9zGOhVdbSkiaLRqhJtgrWkgMr.2aUMwhLXPIVxyyNk1izbRuwMFqXPXl7EwX_FnCdgSJcJ2DoTTXDuDVshlzP7FF.CdFJS77uSut3sHCi.JlxSdX1ZOkv25dM_Z3ELsJEaCHgopsWHdUdrpLHX80VXCEUZawSvz9is5gqzmLAMnOW5JnkgAFz6gEBSQrC3E0LtEYx2qdt0Vfww--",
    "oauthTokenSecret": "3c47ae7BlahBlahBlahace21346b100bdb208a6f",
    "type": "OAuth",
    "oauthSessionHandle": "ANxLPlC_1rSIQpoBlahBlahBlah0pWFUzQgBrPkCFb5sKuE-"
  }
}

Foursquare

Foursquare Setup Guide

Note: If you do not have an existing Foursquare account, the setup will include an email verification step.

To set up Foursquare, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button ( Manage Engage App button ) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Foursquare.
  5. Click Configure. The Provider Setup Guide appears.

    FS-1
  6. In the Janrain pop-up window, click Foursquare to sign up for an account if you do not already have one. The sign-up link is near the bottom of their page.

  7. Once you have an account, go back to the pop-up and click foursquare.com/oauth.

  8. On the Foursquare page, click Register a New Consumer. The OAuth Consumer Registration form is displayed.

    FS-2
  9. Enter a name for the application and the URL of the page where Social Login will be hosted.

  10. Return to the pop-up and click Next.

  11. The Callback URL is displayed. Enter this into the Callback URL field on the Foursquare form.

  12. Click Register Application when you are done. The My OAuth Consumers page is displayed.

  13. Copy the Client ID from this page.

  14. Go back to the pop-up and click Next.

  15. In the pop-up window, paste in the Client ID.

    FS-3
  16. Go back to the Foursquare page, copy your Client Secret, and paste it into the pop-up.

  17. Click Save. The Provider Enabled page is displayed.

    FS-4

Foursquare is now configured as an Identity Provider, and may be added to Social Login.

Foursquare auth_info Response

The JSON sample below shows an example of the profile data that Foursquare returns. Foursquare can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
   "stat":"ok",
   "profile":{
      "providerName":"Foursquare",
      "identifier":"https://api.foursquare.com/v2/users/80xyz03",
      "preferredUsername":"rpxdoc",
      "displayName":"Rpx Doc",
      "name":{
         "formatted":"Rpx Doc",
         "givenName":"Rpx",
         "familyName":"Doc"
      },
      "email":"rpxdoc@blah.com",
      "url":"https://api.foursquare.com/v2/users/80xyz03",
      "photo":"https://is1.4sqi.net/userpix_thumbs/B1234567LDOOO1X4.jpg",
      "gender":"male",
      "phoneNumber":"5555633082"
   },
   "merged_poco":{
      "id":"https://api.foursquare.com/v2/users/80xyz03",
       "displayName":"Rpx Doc",
      "preferredUsername":"rpxdoc",
      "gender":"male",
      "profileUrl":"https://api.foursquare.com/v2/users/80xyz03",
      "name":{
         "formatted":"Rpx Doc",
         "givenName":"Rpx",
         "familyName":"Doc"
      },
      "emails":[
         {
            "value":"rpxdoc@blah.com",
            "type":"other",
            "primary":true
         }
      ],
      "urls":[
         {
            "value":"https://api.foursquare.com/v2/users/80xyz03",
            "type":"profile"
         }
      ],
      "phoneNumbers":[
         {
            "value":"5555633082",
            "type":"other"
         }
      ],
      "addresses":[
         {
            "locality":"Portland",
            "region":"OR"
         }
      ],
      "photos":[
         {
            "value":"https://is1.4sqi.net/userpix_thumbs/B123456BlahOO1X4.jpg",
            "type":"profile"
         }
      ],
      "accounts":[
         {
            "domain":"twitter.com",
            "userid":"rpxdoc"
         },
         {
            "domain":"facebook.com",
            "userid":"100BlahBlah7767"
         }
      ]
   },
   "provider":{
      "foursquare":{
         "type":"user",
         "relationship":"self",
         "pings":false
      }
   },
   "accessCredentials":{
      "accessToken":"3WTJMZ2C1JBlahBlahBlahWJOMUYQWVMUOO3EX4SJRJTLX5U",
      "uid":"80xyz03",
      "type":"oauth2"
   }
}

Google+

Google+ Setup Guide

Developer Guidelines

The Google+ platform developer policies are found here.

These guidelines will impact you the most:

  • Google lists specific guidelines relating to user disconnect, including enabling users to disconnect their Google account within your application and deleting user data when a user disconnects from your application. Refer to the following developer policy pages for details on these topics:
  • If your application allows lengthy session times, a user may be logged in with legacy Google after you have replaced Google with Google+. In those cases, a customer would be logged in with Google, but not logged in with Google+. You may want to forcibly end those user’s sessions and encourage login with Google+.
  • Google requires that Google logins be given equal prominence with other identity providers. Refer to the developer policy page for details.

Google+ Dashboard Setup

To set up Google+ as a Social Login provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click Google+.
  5. Click Configure. The Google+ Setup Wizard appears.

    gplus-1
  6. If you do not have a Google account, create one.

  7. Sign in to Google and click the link displayed on the Google+ Setup Wizard. The Google Developers Console page is displayed in your browser.

  8. Click the project you want to use for integration with Janrain. If you don’t have a project, create one:

    1. Click Create Project. The New Project dialog appears.

      gplus-2
    2. Enter a Project Name.

    3. Select the Terms of Service.

    4. Click Create.

  9. On the Google+ Setup Wizard, Click Next.

  10. On the left navigation bar of the Projects page, click APIS & AUTH to expand the list.

    test
  11. Click APIs to display the API list.

  12. In the API list, for Google+ API select ON.

  13. In the Enable the Google+ API dialog, select the Terms of Service and click Accept.

  14. On the left navigation bar of the Projects page, click Credentials.

  15. In the OAuth section, click Create new Client ID. The Create Client ID dialog is displayed.

    gplus-4
  16. Click Web Application.

  17. On the Google+ Setup Wizard, copy the Javascript Origin and Redirect URL values and paste them to the corresponding boxes on the Create Client ID dialog.

  18. Click Create Client ID.

  19. Return to the Google+ Setup Wizard and click Next.

  20. On the Projects page in the Client ID for web application section, copy the CLIENT ID and CLIENT SECRET values and paste them to the corresponding boxes on the Google+ Setup Wizard.

    gplus-6
  21. If you wish to use Over the Air Android App Installs (see below), you can enter your Android Package Name on the Google+ Setup Wizard. This is optional.

  22. On the Google+ Setup Wizard, unselect Require G+ account if you do not require your users to have a Google+ account.

  23. Click Save.

  24. The Google+ Setup Wizard displays the Google+ is currently enabled page. Click Close.

You may now add Google+ as a Social Login provider on the Janrain Dashboard.

Over-the-Air Android App Installs

You can allow over-the-air installation of Android apps for Google+.

To enable this feature:

  1. Follow the instructions for the Google setup process.
  2. Copy the Android application package name to the Social Login provider configuration.

For over-the-air installs to work, the following must be true:

  • The user logging in to the site must log in with a Google+ account tied to an Android device.
  • The app must come from the Google Play store.
  • The app must be free.
  • The app must have a minimum of 10 ratings, with a minimum rating of three stars.

Google+ auth_info Response

The JSON sample below shows an example of the profile data that Google+ returns. Google+ may change their profile response at any time, so be sure to test their current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "Google+",
    "identifier": "https://www.google.com/profiles/123456789123456789123",
    "verifiedEmail": "example@example.com",
    "preferredUsername": "example",
    "displayName": "First Last",
    "name": {
      "formatted": "First Last",
      "givenName": "First",
      "familyName": "Last"
    },
    "email": "example@example.com",
    "url": "https://plus.google.com/123456789123456789123",
    "photo": "https://lh4.googleusercontent.com/-12345678912/12345678912/12345678912/12345678912/photo.jpg?sz=50",
    "address": {
      "formatted": "Portland, OR"
    },
    "gender": "male",
    "googleUserId": "123456789123456789123",
    "providerSpecifier": "googleplus"
  },
  "merged_poco": {
    "id": "123456789123456789123",
    "nickname": "JJ",
    "displayName": "Fisrt Last",
    "preferredUsername": "rpxstaging",
    "gender": "male",
    "aboutMe": "I like stuff.",
    "profileUrl": "https://plus.google.com/123456789123456789123",
    "currentLocation": {
      "formatted": "Portland, OR"
    },
    "name": {
      "formatted": "First Last",
      "givenName": "First",
      "familyName": "Last"
    },
    "emails": [
      {
        "value": "example@example.com",
        "type": "other",
        "primary": true
      }
    ],
    "languagesSpoken": [
      "en"
    ],
    "urls": [
      {
        "value": "https://plus.google.com/123456789123456789123",
        "type": "profile"
      },
      {
        "value": "http://example.blogspot.com/",
        "type": "other"
      },
      {
        "value": "http://example.com",
        "type": "other"
      },
      {
        "value": "http://example.com",
        "type": "other"
      }
    ],
    "addresses": [
      {
        "formatted": "Portland, OR"
      },
      {
        "formatted": "seattle, wa"
      },
      {
        "formatted": "los angeles"
      }
    ],
    "photos": [
      {
        "value": "https://lh4.googleusercontent.com/-12345678912/12345678912/12345678912/12345678912/photo.jpg?sz=50",
        "type": "other"
      }
    ],
    "organizations": [
      {
        "name": "University of College",
        "title": "lounging",
        "type": "school",
        "startDate": "2008"
      },
      {
        "name": "High School H.S.",
        "title": "student",
        "type": "school",
        "startDate": "2000",
        "endDate": "2004"
      },
      {
        "name": "janrain",
        "title": "tester",
        "type": "work",
        "startDate": "2011"
      },
      {
        "name": "a company",
        "title": "QA engineer",
        "type": "work",
        "startDate": "2009",
        "endDate": "2009"
      }
    ]
  },
  "accessCredentials": {
    "accessToken": "1234.1234567891234567891-123456789ABCD123456789ABCD12345",
    "uid": "123456789123456789123",
    "expires": "1365698173",
    "scopes": [
      "http://gdata.youtube.com",
      "http://picasaweb.google.com/data/",
      "http://spreadsheets.google.com/feeds/",
      "https://mail.google.com/mail/feed/atom/",
      "https://sites.google.com/feeds/",
      "https://www.google.com/webmasters/tools/feeds/",
      "https://www.googleapis.com/auth/userinfo.email",
      "http://www.google.com/m8/feeds/",
      "https://mail.google.com/",
      "https://www.googleapis.com/auth/gan",
      "https://www.googleapis.com/auth/analytics.readonly",
      "https://www.googleapis.com/auth/structuredcontent",
      "https://www.googleapis.com/auth/chromewebstore.readonly",
      "https://www.googleapis.com/auth/plus.login"
    ],
    "type": "oauth2"
  }
}

Instagram

Instagram Setup Guide

Note: An Instagram account with developer credentials is required before configuration.

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Instagram.
  5. Click Configure. The Instagram Setup Wizard appears.

    Instagram-1
  6. Follow the link provided and sign in to your Instagram account, if you are not already signed in.

  7. Navigate to the Manage Clients section of Instagram, or click the link provided.

  8. In the Instagram Setup Wizard, click Next.

    Instagram-2
  9. Either edit an existing client in the Instagram Manage Clients page, or create a new client.

  10. Copy the OAuth redirect uri value from the wizard and paste it in the appropriate field in the Register new OAuth Client or Edit Client Instagram page.

  11. Save changes to your client.

  12. In the Instagram Setup Wizard, click Next.

    Instagram-3
  13. Copy the Client ID and Client Secret from the Manage Clients page and paste the values into the matching fields in the wizard.

  14. Click Save. The Provider Enabled page is displayed.

    Instagram-4

Your Instagram provider is now configured and available as an option for Social Login.

Instagram auth_info Response

The JSON sample below shows an example of the profile data that Instagram returns. Instagram can change their profile response at any time, so be sure to test their current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "Instagram",
    "identifier": "http://instagram.com/12345678",
    "preferredUsername": "Mr. Example",
    "displayName": "Mr. Example",
    "name": {
      "formatted": "Mr. Example"
    },
    "url": "http://janrain.com",
    "photo": "http://images.instagram.com/profiles/example.jpg"
  },
  "merged_poco": {
    "id": "http://instagram.com/12345678",
    "displayName": "Mr. Example",
    "preferredUsername": "Mr. Example",
    "aboutMe": "I enjoy sports.",
    "name": {
      "formatted": "Mr. Example"
    },
    "urls": [
      {
        "value": "http://janrain.com",
        "type": "other"
      }
    ],
    "photos": [
      {
        "value": "http://images.instagram.com/profiles/example.jpg",
        "type": "profile"
      }
    ]
  },
  "followers": [
    "http://instagram.com/123456789",
    "http://instagram.com/987654321"
  ],
  "following": [
    "http://instagram.com/00000000",
    "http://instagram.com/11111111",
    "http://instagram.com/22222222",
    "http://instagram.com/33333333",
    "http://instagram.com/4444444",
    "http://instagram.com/55555555",
    "http://instagram.com/666666",
    "http://instagram.com/7777777"
  ],
  "accessCredentials": {
    "accessToken": "123456789.ABCDEFGHIJKL.123456789123456789123456789",
    "uid": "12345678901",
    "scopes": "relationships,likes,comments,basic",
    "type": "oauth2"
  },
  "provider": {
    "instagram": {
      "mediaCount": 3,
      "followsCount": 8,
      "followersCount": 2
    }
  }
}

LinkedIn

LinkedIn Setup Guide

To set up LinkedIn as a Social Login provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click LinkedIn.
  5. Click Configure. The LinkedIn Setup Wizard appears.

    linkedin-1
  6. If you do not have a LinkedIn account, click the LinkedIn link to create one.

  7. Sign in to LinkedIn.

  8. Click the linkedin.com/secure/developer link. The LinkedIn Developer Network page is displayed.

  9. In the LinkedIn Setup Wizard, click Next. The Website URL page is displayed.

    linkedin-2
  10. On the LinkedIn Developer Network page, click Add New Application. The Add New Application page is displayed.

    linkedin-3
  11. In the Company Info section:

    1. Enter your Company name.
    2. Enter any additional Account Administrators you need (besides yourself).
  12. In the Application Info section:

    1. Enter your Application Name. Your customers will see this name.
    2. Enter an application Description.
    3. On the LinkedIn Setup Wizard, copy the Website URL value and paste it into the **Website URL **field on the Add New Application page.
    4. In the Application Use box, select a description of your application.
    5. In the Live Status box, select the state of your application (Development or Live).
  13. In the Contact Info Section:

    1. Enter Developer Contact Email and Phone number values (probably your own).
  14. Complete any of the remaining optional fields as necessary.

  15. In the Terms of Service section:

    1. Select the Agree check box.
    2. Click Add Application. If successful, the Your application was successfully created page is displayed.

      linkedin-4
  16. On the LinkedIn Setup Wizard, click Next. The API Key and Secret Key page is displayed.

    linkedin-5
  17. On the Your application was successfully created page, copy the API Key and Secret Key values, and paste them to the LinkedIn Setup Wizard.

  18. On the LinkedIn Setup Wizard, click Save. The LinkedIn is currently enabled page is displayed.

    linkedin-6
  19. On the LinkedIn Setup Wizard, click Close.

  20. On the Your application was successfully created page, click Done.

You may now add LinkedIn as a Social Login provider on the Janrain Dashboard.

LinkedIn auth_info Response

The JSON sample below shows an example of the profile data that LinkedIn returns. LinkedIn can change their profile response at any time, so be sure to test their current response.

This response reflects LinkedIn’s expansion of their profile in July 2012.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "providerName": "LinkedIn",
    "identifier": "http://www.linkedin.com/profile?viewProfile=123456789A",
    "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
    "preferredUsername": "Mr. Example",
    "displayName": "Mr. Example",
    "name": {
      "formatted": "Mr. Example",
      "givenName": "Mr.",
      "familyName": "Example"
    },
    "email": "example@example.com",
    "url": "http://example.com",
    "photo": "http://m3.licdn.com/mpr/mprx/0_rmBXqKaF__1234567890ABCDEFGHIJKLMONPQRSTUVWXYZ",
    "address": {
      "formatted": "101 Main way, or  100001"
    },
    "birthday": "1984-03-05",
    "phoneNumber": "555-555-5555",
    "providerSpecifier": "linkedin"
  },
  "merged_poco": {
    "id": "http://www.linkedin.com/profile?viewProfile=1234567890",
    "displayName": "Mr. Example",
    "preferredUsername": "Mr. Example",
    "aboutMe": "I'm an example",
    "profileUrl": "http://www.linkedin.com/profile?viewProfile=1234567890",
    "status": "ok",
    "note": "I like things.",
    "currentLocation": {
      "formatted": "Portland, Oregon Area"
    },
    "name": {
      "formatted": "Mr. Example",
      "givenName": "Mr.",
      "familyName": "Example"
    },
    "updated": "2012-11-29T01:08:45.450Z",
    "birthday": "1984-03-05",
    "ims": [
      {
        "value": "mrexample",
        "type": "aim"
      }
    ],
    "emails": [
      {
        "value": "example@example.com",
        "type": "other",
        "primary": true
      }
    ],
    "languagesSpoken": [
      "English",
      "spanish"
    ],
    "urls": [
      {
        "value": "http://example.com",
        "type": "other"
      },
      {
        "value": "http://another example.com",
        "type": "other"
      },
      {
        "value": "http://janrain.com",
        "type": "other"
      },
      {
        "value": "http://www.linkedin.com/in/mrexample",
        "type": "profile"
      }
    ],
    "phoneNumbers": [
      {
        "value": "555-555-5555",
        "type": "home"
      }
    ],
    "addresses": [
      {
        "formatted": "101 Main Way,nrpx, or  10001"
      }
    ],
    "interests": [
      "authentication and social publishing"
    ],
    "jobInterests": [
      "Photography"
    ],
    "photos": [
      {
        "value": "http://m3.licdn.com/mpr/mprx/0_rmBXqKaF__12345678909876543210abcdefghijklmnop",
        "type": "other"
      }
    ],
    "accounts": [
      {
        "domain": "twitter.com",
        "userid": "123456789",
        "username": "mrexample"
      }
    ],
    "organizations": [
      {
        "name": "janrain",
        "title": "Sales",
        "type": "job",
        "startDate": "2010",
        "description": "I sell things."
      },
      {
        "name": "prior company",
        "title": "prior job",
        "type": "job",
        "startDate": "2002",
        "endDate": "2010",
        "description": "prior stuff"
      },
      {
        "name": "on the job training university",
        "department": "testing stuff",
        "title": "3rd",
        "type": "school",
        "startDate": "1988",
        "endDate": "1992",
        "description": "more stuff"
      }
    ]
  },
  "friends": [
    "http://www.linkedin.com/profile?viewProfile=ABcd123efG",
    "http://www.linkedin.com/profile?viewProfile=1234ABc567"
  ],
  "accessCredentials": {
    "oauthToken": "12345678-4321-1234-4321-123456789012",
    "oauthTokenSecret": "12345678-1234-4321-1234-123456789012",
    "uid": "12345678901",
    "expires": 1370826728,
    "scopes": [
      "r_emailaddress",
      "r_network",
      "r_contactinfo",
      "rw_nus",
      "rw_groups",
      "w_messages",
      "r_fullprofile"
    ],
    "type": "OAuth"
  },
  "provider": {
    "linkedin": {
      "associations": "sales users",
      "patents": [
        {
          "title": "sales fan",
          "date": "2004-01-07"
        }
      ],
      "numRecommenders": 1,
      "industry": "Computer Software",
      "following": {
        "companies": [
          {
            "name": "Janrain, Inc."
          }
        ],
        "industries": [
          {
            "id": 4
          }
        ]
      },
      "courses": [
        {
          "name": "data systems",
          "number": "1"
        },
        {
          "name": "compilers",
          "number": "666"
        }
      ],
      "certifications": [
        {
          "name": "salesman extrordinaire"
        },
        {
          "name": "spelling champ"
        }
      ],
      "publications": [
        {
          "title": "to sell or not to sell",
          "date": "2011-02-01"
        },
        {
          "title": "Sell at any Speed",
          "date": "1968-03-03"
        }
      ],
      "positions": [
        {
          "name": "janrain",
          "isCurrent": true
        },
        {
          "name": "prior company",
          "isCurrent": false
        }
      ],
      "jobBookmarks": [
        {
          "isApplied": false,
          "isSaved": true,
          "job": {
            "active": false,
            "company": {
              "name": "Rain Sportswear"
            },
            "descriptionSnippet": "We have a lifestyle A suit and tie aren't even an option at Rain Sportswear.",
            "position": {
              "title": "Enterprise Test Manager"
            },
            "postingTimestamp": "2012-11-16T22:01:27.000Z"
          },
          "savedTimestamp": "2012-11-30T01:15:15.000Z"
        }
      ],
      "honors": "widget awards",
      "groupMemberships": [
        {
          "name": "A really cool group",
          "membershipState": "owner"
        }
      ],
      "mFeedRssUrl": "http://www.linkedin.com/rss/mefeed?key=1234567890ABCEFGHIJKLMNOPQRSTUVWXYZ1234",
      "skills": [
        {
          "skill": "HTML"
        },
        {
          "skill": "Hiking"
        },
        {
          "skill": "Cooking"
        }
      ],
      "proposalComments": "",
      "recommendations": [
        {
          "text": "This guy was a huge sales fan. That's the complete basis of my recommendation.",
          "type": "colleague",
          "recommender": {
            "givenName": "Mr.",
            "familyName": "Example"
          }
        }
      ],
      "volunteer": {
        "causes": [
          {
            "name": "Food bank"
          }
        ],
        "volunteerExperiences": [
          {
            "organization": "Kitchen",
            "role": "founder"
          }
        ]
      }
    }
  }
}

LiveJournal

LiveJournal auth_info Response

The JSON sample below shows an example of the profile data that LiveJournal returns. LiveJournal can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "profile": {
    "displayName": "rpxdoc",
    "preferredUsername": "rpxdoc",
    "url": "http://rpxdoc.livejournal.com/",
    "providerName": "LiveJournal",
    "identifier": "http://rpxdoc.livejournal.com/"
  },
  "merged_poco": {
    "urls": [
      {
        "type": "other",
        "value": "http://rpxdoc.livejournal.com/"
      }
    ],
    "preferredUsername": "rpxdoc"
  },
  "stat": "ok"
}

MediKey

Premium

MediKey Setup Guide

Before You Start

  • To configure MediKey as an identity provider, you need:
    • An existing license with MediKey.
    • A MediKey authentication endpoint. Contact MediKey and provide the Callback URL found on the MediKey Setup Wizard (see the MediKey Identity Provider Setup).
  • Using MediKey may result in additional Janrain configuration charges. Contact Janrain for more information.

MediKey Identity Provider Setup

To set up MediKey as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click MediKey.
  5. Click Configure. This starts the MediKey Setup Wizard.

    medikey-1
  6. Contact MediKey and request an authentication endpoint. You will need to provide the Site ID displayed on the setup wizard.

  7. Once an endpoint is created, paste it to the Callback URL box.

  8. Click Save.

MediKey is now configured as an identity provider and is selectable on the Janrain Dashboard.

Medy

Premium

Medy Setup Guide

Before You Start

To configure Medy as an identity provider, you need:

  • An existing license with Medy.
  • A Medy authentication endpoint. Contact Medy and provide the Redirect/Whitelist URI found on the Medy Setup Wizard (see the Medy Identity Provider Setup).

Using Medy may result in additional Janrain configuration charges. Contact Janrain for more information.

Medy Identity Provider Setup

To set up Medy as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App (Manage Engage App button) button corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click Medy.
  5. Click Configure. This starts the Medy Setup Wizard.

    Medy Configuration Dialog (Page 1)
  6. Contact Medy. Request an authentication endpoint and ask them to whitelist your URI. Give them the Redirect/Whitelist URI displayed on the dialog.

  7. Click Next.

    Medy Configuration Dialog (Page 2)
  8. Once an endpoint is created, paste the app Client Secret (AKA Magic Word) to the setup wizard.

  9. Click Save.

Medy is now configured as an identity provider and is selectable on the Janrain Dashboard.

Medy auth_info Response

The JSON sample below shows an example of the profile data that Medy returns. Providers may change their profile response at any time, so be sure to test their current response.

{
  "stat": "ok",
  "profile": {
    "birthday": "1970-06-16T00:00:00+09:00",
    "displayName": "rpxstaging",
    "email": "rpxstaging@medymail.jp",
    "identifier": "https://medy-id.jp/user/ps1r4cf99u0g",
    "name": {
      "familyName": "rpx",
      "formatted": "staging rpx",
      "givenName": "staging"
    },
    "preferredUsername": "rpxstaging",
    "providerName": "Medy",
    "providerSpecifier": "medy",
    "provider_id": "ps1r4cf99u0g"
  },
  "merged_poco": {
    "birthday": "1970-06-16T00:00:00+09:00",
    "emails": [
      {
        "primary": true,
        "type": "email",
        "value": "rpxstaging@medymail.jp"
      }
    ],
    "id": "https://medy-id.jp/user/ps1r4cf99u0g",
    "name": {
      "familyName": "rpx",
      "formatted": "staging rpx",
      "givenName": "staging"
    },
    "organizations": {
      "name": "staging U",
      "type": "job"
    },
    "preferredUsername": "rpxstaging"
  },
  "accessCredentials": {
    "uid": "ps1r4cf99u0g"
  },
  "provider": {
    "medy": {
      "BirthDate": "1970-06-16T00:00:00+09:00",
      "ConfirmationLevel": "0",
      "FamilyName": "rpx",
      "FamilyNameKana": "ボブ",
      "GivenName": "staging",
      "GivenNameKana": "ステージング",
      "Job": "99",
      "MailAddress": "rpxstaging@medymail.jp",
      "UserName": "rpxstaging",
      "Workplace": "staging U",
      "ax_contract": "{\"p_date\":\"2015-12-07T09:54:13+09:00\",\"contract_id\":\"94188d12-9b84-45f4-abe8-ae47eaf3933c\",\"created\":\"2015-12-11T04:34:08+09:00\",\"signed\":\"p_date,contract_id,created,signed\",\"signature\":\"SPUol2mwuN9bjNbGnce3TNF9GFn4EDbNiEERYkiYKmXt3D/jt2XtO0o7FmqYhE8+WE+byBw7D5RjTAhuP0ICYCl49gXda1nR1camrtGSJXRc0URBu97dLjBngSBq9o4CntU3JspgK2aWz9jSJPzZl+GVcdWqN40A+4qpRxcWn5s=\"}",
      "id": "ps1r4cf99u0g",
      "identifier": "https://medy-id.jp/user/ps1r4cf99u0g"
    }
  }
}

Microsoft

Microsoft Account Setup Guide

To set up Microsoft Account as a Social Login provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button (Manage Engage App button).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button )
  4. In the Provider list on the right side of the page, click Microsoft Account.
  5. Click Configure. The Microsoft Account Setup Wizard appears.

    microsoft-account-1
  6. Click the first hyperlink in the Microsoft Account Setup Wizard to create a Microsoft Account account or sign in to your existing account.

  7. Click the second hyperlink to go to Microsoft’s Enable your application to use Microsoft accounts page.

  8. On Microsoft’s Enable your application to use Microsoft accounts page, enter an Application name and click I accept. Your new application’s Basic Information page is displayed.

  9. On the Microsoft Account Setup Wizard click Next. The API Settings page is displayed.

    microsoft-account-2
  10. On your new application’s Basic Information page, click API Settings on the left navigation bar.

  11. On the Microsoft Account Setup Wizard, copy the Redirect URLs value and paste it to the corresponding box on the API Settings page.

    microsoft-account-3
  12. On the API Settings page, click Save.

  13. On the Microsoft Account Setup Wizard click Next. The Client ID and Client Secret page is displayed.

  14. On the API Settings page, click App Settings on the left navigation bar.

  15. On the App Settings page, copy the Client ID and Client secret values and paste them to the corresponding boxes on the wizard page.

    microsoft-account-4
  16. On the Microsoft Account Setup Wizard, click Save. The Microsoft Account is currently enabled page is displayed.

    microsoft-account-5
  17. On the Microsoft Account Setup Wizard, click Close.

You may now add Microsoft Account as a Social Login provider on the Janrain Dashboard.

Microsoft Account auth_info Response

The JSON sample below shows an example of the profile data that Microsoft Account returns. Microsoft Account can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
   "stat":"ok",
   "profile":{
      "providerName":"Microsoft Account",
      "identifier":"http://cid-1234567891234567.spaces.live.com/",
      "preferredUsername":"Example User",
      "displayName":"Example User",
      "name":{
         "formatted":"Example User",
         "givenName":"Example",
         "familyName":"User"
      },
      "email":"example@gmail.com",
      "url":"https://profile.live.com/",
      "address":{
         "streetAddress":"123 main st.",
         "locality":"Portland",
         "region":"OR",
         "postalCode":"10000",
         "country":"United States",
         "type":"home"
      },
      "birthday":"1960-03-12",
      "phoneNumber":"555-555-5555"
   },
   "merged_poco":{
      "id":"http://cid-1234567891234567.spaces.live.com/",
      "displayName":"Example User",
      "preferredUsername":"Example User",
      "profileUrl":"https://profile.live.com/",
      "name":{
         "formatted":"Example User",
         "givenName":"Example",
         "familyName":"User"
      },
      "updated":"2013-02-14T18:37:17.000Z",
      "birthday":"1982-03-12",
      "emails":[
         {
            "value":"example@gmail.com",
            "type":"other",
            "primary":true
         },
         {
            "value":"example@live.com",
            "type":"other"
         },
         {
            "value":"example@gmail.com",
            "type":"home"
         },
         {
            "value":"example@yahoo.com",
            "type":"work"
         }
      ],
      "urls":[
         {
            "value":"https://profile.live.com/",
            "type":"profile"
         }
      ],
      "phoneNumbers":[
         {
            "value":"555-555-5555",
            "type":"home"
         },
         {
            "value":"5555555555",
            "type":"work"
         },
         {
            "value":"6666666666",
            "type":"mobile"
         }
      ],
      "addresses":[
         {
            "streetAddress":"123 main st.",
            "locality":"Portland",
            "region":"OR",
            "postalCode":"10001",
            "country":"United States",
            "type":"home"
         },
         {
            "streetAddress":"321 some st",
            "locality":"Portland",
            "region":"OR",
            "postalCode":"10001",
            "country":"United States",
            "type":"work"
         }
      ],
      "organizations":[
         {
            "name":"janrain",
            "title":"worker"
         }
      ]
   },
   "accessCredentials":{
      "accessToken":"123456789abcdefghijklmonopqrstuvwxyz123456789",
      "uid":"1234567891234567",
      "expires":1360965241,
      "refreshToken":"9876543210abcdefghijklmnopqrstuvwxyz",
      "scopes":"wl.emails,wl.postal_addresses,wl.phone_numbers,wl.birthday,wl.work_profile,wl.calendars,wl.calendars_update,wl.contacts_calendars,wl.contacts_create,wl.contacts_photos,wl.contacts_skydrive,wl.events_create,wl.messenger,wl.offline_access,wl.photos,wl.share,wl.signin,wl.skydrive,wl.skydrive_update,wl.basic",
      "type":"oauth2"
   }
}

Mixi

Mixi Setup Guide

Before You Start

  • You must have a Japanese smart phone to register with Mixi. Failing that, you can contact Mixi for credentials.
  • You will need a Mixi account. If you already have one, skip to the Mixi Identity Provider Setup section. If not, go to mixi.jp and use the following instructions.

Creating a Mixi Account

  1. Click the yellow-orange button highlighted with a green box.
  2. A new screen is displayed.

    Mixi-1
  3. Enter your email address in the field highlighted in green.

  4. Click the orange button near the bottom of the screen.

    Mixi-2
  5. A new page that shows your email address is displayed. Check your email inbox.

  6. In the email from Mixi, click on the link. Fill out your profile fields. (Chrome includes a built-in translator that might prove useful at this point.)

    Mixi-3
  7. In the Current Address drop-down menu, the very last choice is Overseas. Otherwise, all addresses are for Japanese prefectures.

  8. On the far right, you can set the privacy levels for some of the fields. Public to a Friend is the top choice.

  9. At the bottom, in the second section, you can set your password.

  10. Be sure to click the Terms and Conditions box, just above the big orange button.

  11. Click the orange button at the bottom of the page when you are ready.

  12. A confirmation page showing your information is displayed. If it is correct, click the orange button near the bottom. If your info is not correct, click the smaller white button next to the orange button. This takes you back to the profile page where you can make changes.

  13. If you clicked the orange button, a new page that prompts you for your cell phone information is displayed. This is where you need a smart phone registered in Japan.

  14. A screen is displayed on your phone. Click the link.

Mixi Identity Provider Setup

To set up Mixi as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Mixi.
  5. Click Configure. This starts the Mixi Setup Wizard.

    Mixi-4
  6. After you log in to the Mixi developer’s site, click Next. A new pop-up dialog is displayed.

  7. Copy the Callback URL to a text file. You will need it in the next section.

  8. Set up a Mixi partner:

    1. Go to the Mixi developer’s site.
    2. The link should take you to the mixi Graph API page. If not, select mixi Graph API from the top navigation menu (it is the second tab from the left).
    3. Click the Adding new services link on the left menu.

      Mixi-5
    4. A new page is displayed.

      Mixi-6
  9. Enter a Service name for your service or application.

  10. Copy the Callback URL on the Mixi Setup Wizard and paste it to the Callback URL field on the Registration form.

  11. In the Allowed domain list, enter the domains that your service accepts. This is a whitelist. Any domains not included here will be denied access to your application (do not include http://).

  12. Enter a Contact Email Address in the required field, and fill out the rest of the form as needed. Note: A confirmation email will be sent to this address when the configuration is completed.

  13. Click the Agree radio button below the Terms and Conditions text.

  14. Click Check at the bottom of the page. A confirmation page is displayed.

  15. If all of your information is correct, click Sign-Up. If successful, a confirmation screen is displayed.

    Mixi-7
  16. Mixi will send a confirmation email to your contact email address. Click the confirmation link in the email message and re-enter your password to complete the verification process.

  17. In the top navigation bar, click the mixi Graph API tab. A page with a list of all of your applications is displayed.

  18. Click your application name. A new page containing your application information is displayed.

  19. Copy your Key and Secret.

  20. On the Mixi Setup Wizard, click Next. Enter the Key and Secret values.

  21. Click Save. A success page is displayed.

    Mixi-8

Your Mixi provider is now configured and available as an option for Social Login.

Mixi auth_info Response

The JSON sample below shows an example of the profile data that Mixi returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
   "stat":"ok",
   "profile":{
      "providerName":"Mixi",
      "identifier":"http://mixi.jp/show_friend.pl?uid=dipyBlah9gg6r",
      "preferredUsername":"Janrain, Inc.1",
      "displayName":"rpx doc",
      "name":{
         "formatted":"rpx doc",
         "givenName":"rpx",
         "familyName":"doc"
      },
      "url":"http://mixi.jp/show_friend.pl?uid=dipyBlah9gg6r",
      "photo":"http://profile.img.mixi.jp/photo/member/p/7b/09/123456Blahc7f3c9eBlahBlahBlah47a09564101228.jpg",
      "address":{
         "locality":"u8c4au898bu57ceu5e02",
         "region":"u6c96u7e04u770c",
         "type":"hometown"
      },
      "birthday":"1975-04-07",
      "gender":"male"
   },
   "merged_poco":{
      "id":"http://mixi.jp/show_friend.pl?uid=dipyBlah9gg6r",
      "nickname":"Janrain, Inc.1",
      "displayName":"Janrain, Inc.1",
      "preferredUsername":"Janrain, Inc.1",
      "gender":"male",
      "aboutMe":"I am a fictional person.",
      "profileUrl":"http://mixi.jp/show_friend.pl?uid=dipyBlah9gg6r",
      "name":{
         "formatted":"rpx doc",
         "givenName":"rpx",
         "familyName":"doc"
      },
      "birthday":"1975-04-07",
      "addresses":[
         {
            "locality":"豊見城市",
            "region":"沖縄県",
            "type":"hometown"
         },
         {
            "locality":"渋谷区",
            "region":"東京都",
            "type":"location"
         }
      ],
      "interests":[
         "音楽鑑賞",
         "アウトドア",
         "読書",
         "インターネット"
      ],
      "photos":[
         {
            "value":"http://profile.img.mixi.jp/photo/member/p/7b/09/123456Blahc7f3c9eBlahBlahBlah47a09564101228.jpg",
            "type":"thumbnail",
            "primary":true
         }
      ],
      "organizations":[
         {
            "name":"janrain"
         }
      ]
   },
   "friends":[
      "http://mixi.jp/show_friend.pl?uid=1234Blahm9u6f"
   ],
   "provider":{
      "mixi":{
         "occupation":"ITu95a2u4fc2",
         "bloodType":"O",
         "favoriteThings":[
            {
               "order":"1",
               "value":"snake",
               "type":"ゲーム"
            },
            {
               "order":"2",
               "value":"food",
               "type":"有名人"
            },
            {
               "order":"3",
               "value":"rpxnow.com",
               "type":"ホームページ"
            }
         ]
      }
   },
   "accessCredentials":{
      "accessToken":"83bf1BlahBlahBlah90a76eab5ef2f60cba3ca99",
      "uid":"dipyBlah9gg6r",
      "expires":1348097402,
      "refreshToken":"dad9a23BlahBlahBlah0bc283bb9904ee74065d5",
      "scopes":"r_profile_about_me,r_profile_name,r_profile_gender,r_profile_birthday,r_profile_blood_type,r_profile_location,r_profile_hometown,r_profile_occupation,r_profile_interests,r_profile_favorite_things,r_profile_organizations,r_profile",
      "type":"oauth2"
   }
}

MYDIGIPASS.COM

MYDIGIPASS.COM Setup Guide

Before You Start

Configuration requires a MYDIGIPASS.COM developer’s account. If you do not have one, you need to register before proceeding at https://developer.mydigipass.com/access_gate.

MYDIGIPASS.COM Identity Provider Setup

To set up MYDIGIPASS.COM as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click MYDIGIPASS.COM.
  5. Click Configure. This starts the MYDIGIPASS.COM Setup Wizard.

    mydigipass-1
  6. Log in to a developer account at MYDIGIPASS.COM.

  7. Create a new application and add the desired Identifier and Name.

  8. On the MYDIGIPASS.COM Setup Wizard, click Next.

  9. Copy the Redirect URI from the wizard and add it to the new application form on MYDIGIPASS.COM.

  10. Complete the application form.

  11. On the MYDIGIPASS.COM Setup Wizard, click Next.

  12. Copy the client id and client secret values from the MYDIGIPASS.COM form and paste them to the wizard.

    mydigipass-2
  13. If the Social Login integration is in production, deselect the sandbox? box. This allows testing using a virtual MYDIGIPASS.

  14. Click Save.

  15. If successful, a confirmation screen is displayed. Click Close.

Your MYDIGIPASS.COM provider is now configured and available as an option for Social Login.

MYDIGIPASS.COM auth_info Response

The JSON sample below shows an example of the profile data that MYDIGIPASS.com returns. Providers may change their profile response at any time, so be sure to test the current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "MYDIGIPASS.COM",
    "identifier": "https://www.mydigipass.com/123456789-4321-1234-4321-1234567890",
    "email": "example@digipass.com",
    "providerSpecifier": "mydigipass"
  },
  "accessCredentials": {
    "accessToken": "123456789123456789",
    "uid": "123456123-1234-4321-1234-12345675891",
    "type": "oauth2"
  }
}

Netlog

Netlog auth_info Response

The JSON sample below shows an example of the profile data that Netlog returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "sreg": {
    "dob": "1972-03-03",
    "country": "US",
    "nickname": "rpxdoc",
    "language": "en",
    "fullname": "R P X Doc",
    "gender": "M"
  },
  "profile": {
    "name": {
      "formatted": "R P X Doc"
    },
    "displayName": "R P X Doc",
    "preferredUsername": "rpxdoc",
    "url": "http://en.netlog.com/rpxdoc",
    "gender": "male",
    "birthday": "1972-03-03",
    "providerName": "Other",
    "identifier": "http://en.netlog.com/rpxdoc"
  },
  "merged_poco": {
    "name": {
      "formatted": "R P X Doc"
    },
    "displayName": "R P X Doc",
    "addresses": [
      {
        "country": "United States"
      }
    ],
    "urls": [
      {
        "type": "other",
        "value": "http://en.netlog.com/rpxdoc"
      }
    ],
    "preferredUsername": "rpxdoc",
    "gender": "male",
    "birthday": "1972-03-03"
  },
  "stat": "ok"
}

Odnoklassniki

Odnoklassniki Setup Guide

Note: You need an Odnoklassniki developer account before configuring Odnoklassniki as an identity provider. Follow the first link on the first page of the setup wizard to set up a developer account.

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Odnoklassniki.
  5. Click Configure. The Odnoklassniki Setup Wizard appears.

    Figure 1: Odnoklassniki Setup Wizard, Intro Page
  6. Follow the second link on the setup wizard page. You will need to sign in to your Odnoklassniki account, if you are not already signed in.

  7. On the Odnoklassniki Setup Wizard, click Next.

    odnoklassniki-setup-wizard-add-app
  8. On the Odnoklassniki page, click Add App. The App Settings page is displayed.

  9. On the Odnoklassniki App Settings page, select the Application Type boxes:

    • Web
      • HTML
    • External
  10. Copy the redirect URI value from the setup wizard and paste it to the List of permitted redirect uri box on the Odnoklassniki App Settings page.

  11. On the Odnoklassniki App Settings page, enter any other necessary values.

  12. On the Odnoklassniki App Settings page, click Save. An email is sent to you that contains Application ID, Public Key, and Secret Key values. The key values are required to change application settings.

  13. On the Odnoklassniki Setup Wizard, click Next.

    odnoklassniki-setup-wizard-key-values
  14. From the Odnoklassniki email message, copy the Application ID, Public Key, and Secret Key values. Paste them to the fields on the setup wizard.

  15. On the Odnoklassniki Setup Wizard, click Save.

    odnoklassniki-setup-wizard-enabled
  16. Click Close.

Odnoklassniki is now configured and available as an option for Social Login.

Odnoklassniki auth_info Response

The JSON sample below shows an example of the profile data that Odnoklassniki returns. Providers can change their profile response at any time, so be sure to test the current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "Odnoklassniki",
    "identifier": "http://ok.ru/profile/123456789ABC",
    "displayName": "Marla Hatest",
    "name": {
      "formatted": "Marla Hatest",
      "givenName": "Marla",
      "familyName": "Hatest"
    },
    "photo": "https://some-url",
    "address": {
      "locality": "",
      "country": "US"
    },
    "birthday": "1980-11-20",
    "gender": "female",
    "providerSpecifier": "odnoklassniki"
  },
  "merged_poco": {
    "id": "http://ok.ru/profile/123456789ABCD",
    "displayName": "Marla Hatest",
    "gender": "female",
    "age": 35,
    "name": {
      "formatted": "Marla Hatest",
      "givenName": "Marla",
      "familyName": "Hatest"
    },
    "birthday": "1980-11-20",
    "addresses": [
      { "locality": "",
        "country": "US"
      }
    ],
    "photos": [
      { "value": "https://some-image-url",
        "type": "other"
      },
      { "value": "https://some-image-url",
        "type": "other"
      },
      { "value": "https://some-image-url",
        "type": "other"
      },
      { "value": "https://some-image-url",
        "type": "other"
      },
      { "value": "https://some-image-url",
        "type": "other"
      }
    ]
  },
  "accessCredentials": {
    "accessToken": "123456789ABCDEFG123456789ABCDEFG1",
    "uid": "123456789012",
    "expires": 1234567890,
    "refreshToken": "0123456789ABCDEFG0123456789ABCDEFG0123456789ABCDEFG012345",
    "clientId": "0123456789",
    "type": "oauth2"
  }
}

OneKey

OneKey Setup Guide

To set up OneKey as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (https://dashboard.janrain.com/signin).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click OneKey.
  5. Click Configure. The OneKey Setup Wizard is displayed.
    OneKey Setup Wizard, Ask OneKey to set up an authentication endpoint
  6. Contact OneKey and ask them to set up an authentication endpoint for your application and whitelist your URI.
  7. Once OneKey has created an authentication endpoint for you, click Save.
    OneKey Setup Wizard, OneKey enabled
  8. Click Close.

Your OneKey provider is now configured and available as an option for Social Login.

OneKey auth_info Response

The JSON sample below shows an example of the profile data that OneKey returns. Providers can change their profile response at any time, so be sure to test the current response.

{
  "stat": "ok",
  "profile": {
    "address": {
      "country": "DE",
      "formatted": "Rathausstr. 11 Jueau 12345 DE",
      "locality": "Jueau",
      "postalCode": "12345",
      "streetAddress": "Rathausstr. 11"
    },
    "displayName": "John SMITH",
    "email": "92D98B54-4B0C-3AA7-F607-8143CB3D3925@owa-private.com",
    "gender": "1",
    "identifier": "https://www.abcde12345.com/user/abcde12345abcde12345abcde12345abcde1",
    "name": {
      "familyName": "SMITH",
      "formatted": "John SMITH",
      "givenName": "John"
    },
    "phoneNumber": "0123196123",
    "providerName": "OneKey",
    "providerSpecifier": "onekey",
    "provider_id": "abcde12345abcde12345abcde12345abcde1"
  },
  "accessCredentials": { "uid": "abcde12345abcde12345abcde12345abcde1" }
}

OpenID

OpenID auth_info Response

The JSON sample below shows an example of the profile data that OpenID returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "url": "https://openid.stackexchange.com/user/28Blah48-1234-482b-873f-dbbBlahded1f",
    "email": "rpxdoc@example.com",
    "displayName": "RpxDoc",
    "name": {
      "formatted": "RpxDoc"
    },
    "preferredUsername": "RpxDoc",
    "identifier": "https://openid.stackexchange.com/user/28Blah48-1234-482b-873f-dbBlahBlah1f",
    "providerName": "Other"
  },
  "merged_poco": {"urls": [
    {
      "value": "https://openid.stackexchange.com/user/28Blah48-1234-482b-873f-dbBlahBlah1f",
      "type": "other"
    }
  ], "emails": [
    {
      "value": "rpxdoc@blahoo.com",
      "type": "other"
    }
  ], "displayName": "RpxDoc", "name": {"formatted": "RpxDoc"}},
  "sreg": {
    "email": "rpxdoc@blahoo.com",
    "fullname": "RpxDoc"
  }
}

PayPal

PayPal Setup Guide

To set up PayPal as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click PayPal.
  5. Click Configure. The PayPal Setup Wizard is displayed.
  6. On the wizard, click Next.

    paypal-1
  7. Enter an Application Name.

  8. Enter the PayPal Email address associated with your PayPal account.

  9. Click Save. The Your domain has been registered with PayPal page is displayed.

    paypal-2
  10. Click Close.

Your PayPal provider is now configured and available as an option for Social Login.

PayPal auth_info Response

The JSON sample below shows an example of the profile data that PayPal returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "profile": {
    "name": {
      "givenName": "R P X",
      "familyName": "Doc",
      "formatted": "R P X Doc"
    },
    "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
    "displayName": "rpxdoc",
    "preferredUsername": "rpxdoc",
    "url": "https://www.paypal.com/webapps/auth/user/505062BlahBlahBlahBlah9e9a5a88b26271a8c1b3df5c7f1c3a399b25ab494c",
    "utcOffset": "-08:00",
    "phoneNumber": "5555633082",
    "birthday": "1968-01-31",
    "providerName": "PayPal",
    "identifier": "https://www.paypal.com/webapps/auth/user/505062BlahBlahBlahBlah9e9a5a88b26271a8c1b3df5c7f1c3a399b25ab494c",
    "email": "rpxdoc@blahoo.com"
  },
  "accessCredentials": {
    "uid": "W7VBlahWYRDQ6"
  },
  "merged_poco": {
    "name": {
      "givenName": "R P X",
      "familyName": "Doc",
      "formatted": "R P X Doc"
    },
    "urls": [
      {
        "type": "other",
        "value": "https://www.paypal.com/webapps/auth/user/505062BlahBlahBlahBlah9e9a5a88b26271a8c1b3df5c7f1c3a399b25ab494c"
      }
    ],
    "addresses": [
      {
        "country": "United States",
        "streetAddress": "519 SW 3rd Avenue, Suite 600",
        "postalCode": "97204",
        "locality": "Portland",
        "region": "OR"
      }
    ],
    "preferredUsername": "rpxdoc",
    "utcOffset": "-08:00",
    "emails": [
      {
        "type": "other",
        "value": "rpxdoc@blahoo.com"
      }
    ],
    "birthday": "1968-01-31",
    "phoneNumbers": [
      {
        "type": "home",
        "value": "5555633082"
      }
    ],
    "languagesSpoken": [
      "en_US"
    ]
  },
  "stat": "ok",
  "provider": {
    "paypal": {
      "verifiedAccount": "false"
    }
  }
}

QQ

QQ Setup Guide

Before You Start

Configuration requires a QQ developer’s account. If you do not have one, you need to register before proceeding at http://connect.qq.com/.

QQ Identity Provider Setup

To set up QQ as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage\_SL\_App\_Icon) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click QQ.
  5. Click Configure. This starts the QQ Setup Wizard.

    qq-1
  6. Open http://connect.qq.com/manage in a new window, and sign in.

  7. Return to the setup wizard and click Next.

  8. On the QQ site, click the green button (with the ‘+’ sign) to create a new application.

  9. Select Website.

  10. Add application information. Use the Website address and Callback address provided in the setup wizard.

  11. Before completing the form, hover over the Verification button. Copy the displayed code.

    qq-2
  12. Return to the setup wizard and click Next.

  13. Paste the code copied from the QQ page into the setup wizard.

  14. Click Next.

  15. Return to the QQ form and again hover over the Verification button. In the hover area, click the Start the Verification button.

  16. Accept the agreement terms.

  17. Click the green button (with the ‘+’ sign) to complete the application.

  18. Return to the setup wizard and click Next.

    qq-3
  19. Return to the QQ site and click on the newly-created application.

  20. At the top, the application’s App ID and App Key are displayed. Copy these values and paste them into the associated boxes in the setup wizard.

  21. Click Save.

Your QQ provider is now configured and available as an option for Social Login.

QQ auth_info Response

The JSON sample below shows an example of the profile data that QQ returns. Providers can change their profile response at any time, so be sure to test the current response.

{
   "stat":"ok",
   "profile":{
      "providerName":"QQ",
      "identifier":"https://qq.com/test",
      "displayName":"Example Two",
      "photo":"http://www.example.com/30",
      "gender":"male",
      "providerSpecifier":"qq"
   },
   "merged_poco":{
      "id":"https://qq.com/13211",
      "nickname":"Mr. Example",
      "displayName":"Example Jones",
      "gender":"male",
      "photos":[
         {
            "value":"http://www.example.com/41",
            "type":"profile",
            "primary":true
         },
         {
            "value":"http://www.example.com/42",
            "type":"other"
         },
         {
            "value":"http://www.example.com/43",
            "type":"other"
         },
         {
            "value":"http://www.example.com/40",
            "type":"other"
         }
      ]
   },
   "accessCredentials":{
      "accessToken":"123456789123456789123456789",
      "uid":"987654321987654321987654312",
      "scopes":"get_info",
      "type":"oauth2"
   },
   "provider":{
      "qq":{
         "vip":"0",
         "yellowVipLevel":"0",
         "isYellowVip":"0",
         "isYellowYearVip":"0",
         "level":"0"
      }
   }
}

Renren

Renren Setup Guide

Before You Start

You need a Renren account (which you can create at renren.com).

Log In to Renren

Note: If you cannot read Chinese, you may want to use a browser that can translate the page for you.

  1. Go to renren.com.
  2. Enter your email address in box 1.
  3. Enter a password in box 2.
  4. Enter the bot-defeating code in box 3. Do not ignore this step!

    renren-1
  5. If you need to create a new account, you must either be able to type Chinese characters on your computer or get an account from Renren.com.

Renren Identity Provider Setup

To set up Renren as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link.
  4. In the list on the right, click Renren.
  5. Click Configure. This starts the Renren Setup Wizard.

    renren-2
  6. After you log in to Renren, switch to the setup wizard and click the developers link.

  7. In the top navigation bar, click Application Development (the second selection from the left in the top navigation menu).

  8. Click the yellow button. A pop-up dialog is displayed.

    renren-3
  9. Enter the name of your application.

  10. Select the boxes for I have read and accepted the agreements.

  11. Click Continue. A new page is displayed.

    renren-4
  12. Copy the values for API Key and Secret Key into a text file. You will need them later.

Enter Application Information
  1. Go back to your configuration pop-up. If you do not see a list of setting values including your Callback URL, click Next. You will need this value later.
  2. Click Basic information on the Ren Ren application page (on the left navigation menu).
  3. On the new page, the name of your application is already in place. Leave it.
  4. Select a category from the Application menu.
  5. Enter the Application Root Domain of your application. This should be the application hosting the page with Social Login functionality, not the callback URL.
  6. The name fill field is for you to enter a second URL (if necessary).
  7. Enter Keywords to help search engines find your application.
  8. Icons are required in the sizes specified. To upload icons for this application, click Change.
  9. When you finish entering information, click Save (in the middle of the page).
  10. A confirmation dialog is displayed. Click it. No new page appears.
  11. In the left navigation panel, click the Application of Information Settings link.
  12. On the new page, click Add Application.
  13. Enter a name for your Canvas. This will expand more settings.
  14. You must enter the Callback URL. The value is located on the pop-up.
  15. For Application access URL, your value should be similar to this: http://apps.renren.com/<your_app>.
  16. Change the iFrame height to Custom, and set the value to 500.
  17. The image displayed when the user is not logged in is required. Click Change to upload an image.
  18. You can add a WAP (Wireless Application Protocol) station if necessary.
  19. At the bottom of the page, each heading expands into a panel if you need to add this functionality. Just click the headings that you need.
  20. Click Save when you are finished.
Secrets

Now you will use your API Key and Secret Key.

  1. Go back to the pop-up.
  2. Copy the API Key and Secret Key values from the text file (or from your application’s main page) and paste them into the fields in the configuration pop-up. If the API Key and Secret Key fields are not displayed, click Next.
  3. Click Save.

Your Renren provider is now configured and available as an option for Social Login.

Renren auth_info Response

The JSON sample below shows an example of the profile data that Renren returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{"accessCredentials":
  {"uid": "45Blah968",
   "accessToken":
    "194632|6.d01cc85Blah0ce96Blah66cBlah9cc8d.2592000.13Blah8400-459057968",
    "refreshToken":"194832|0.G481EBlahBlahBlahECK2SQF7E6EjdO8.45Blah968",
    "expires": 0,
   "type": "oauth2"},
 "stat": "ok",
 "merged_poco":
  {"photos":
    [{"value":
       "http://hdn.xnimg.cn/photos/hdn121/20120525/4321/h_tiny_7sBq_3fBlahBlahd61376.jpg",
      "type": "thumbNail"},
     {"value":
       "http://hdn.xnimg.cn/photos/hdn121/20120525/4321/h_head_Ufx3_3fBlahBlahd61376.jpg",
      "type": "headUrl"}],
   "displayName": "约杰克",
   "id": "http://renren.com/123Blah68",
   "addresses":
    [{"locality": "Dongcheng District", "region": "北京"}],
   "birthday": "1976-05-21",
   "gender": "male",
   "organizations":
    [{"name": "janrain",
      "startDate": "2009-08",
      "endDate": "2012-09",
      "description": ""},
     {"name": "Alaska Pacific University &#040;Anchorage&#041;",
      "department": "其它院系",
      "endDate": "2002"},
     {"name": "天祝一中",
      "endDate": "2000"}],
   "preferredUsername": "约杰克",
   "name":{
      "formatted": "约杰克"
    }},
 "profile":
  {"birthday": "1976-05-21",
   "gender": "male",
   "photo":
    "http://hdn.xnimg.cn/photos/hdn121/20120525/4321/h_head_Ufx3_3fBlahBlahd61376.jpg",
   "address":
    {"locality": "Dongcheng District", "region": "北京"},
   "identifier": "http://renren.com/459Blah68",
   "preferredUsername": "约杰克",
   "providerName": "Renren",
   "displayName": "约杰克",
   "name":{
      "formatted": "约杰克"
    }},
 "friends": ["http://renren.com/123Blah04", "http://renren.com/123Blah05"]}

Salesforce

Salesforce Setup Guide

Before You Start

You must have a Salesforce developer account before you start. If you do not have one, then create one.

Otherwise, the New Connected App section won’t appear on the Salesforce apps page.

Salesforce Identity Provider Setup

You need to perform these steps in Salesforce.

  1. Log in to http://www.salesforce.com.
  2. Click the (your name) drop-down menu in the upper right-hand corner and choose Setup. Alternately, choose the Setup link in the top right corner if it is displayed in your Salesforce version.
  3. You also need a namespace prefix.

    1. If you have not created one, in Salesforce, in the left navigation panel, go to Create > Packages. You should see a page similar to the one shown below. If you do not see this page, quit. Go back to the prerequisites and create a developer account at the link shown above.

      Create Packages Page
    2. In the center panel (which is Developer Settings) click Edit. A new page is displayed.

    3. Read the directions and click Continue.

    4. On the new page, enter your namespace prefix. You do not have to select a package to be managed at this time. You can come back to this step and do it later. Click Check Availability. If your prefix is available, continue (otherwise, change it).

    5. Click Review my Selections. Your namespace prefix is displayed, and no packages. Your prefix is already saved.

  4. In the left navigation panel (under Create) choose Apps.

  5. The Apps list is displayed, and contains the default apps. Below that, you will see a section called Connected Apps which is probably empty. In the Connected Apps section, choose New.

    Connected Apps page
  6. A new page is displayed. Enter a name for your app.

    New Connected App page
  7. You must enter your Developer Name. However, you must enter your name without any spaces. For example, instead of “Philippe Hilger”, you would use “PhilippeHilger”.

  8. Enter a Description and the URLs (if you have them).

  9. Your Contact Email is required. This should be an address that more than one person can access.

In the Janrain Dashboard:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ) to access the Provider Configuration page.
  4. In the list on the right, click Salesforce.
  5. Click Configure. This starts the Salesforce Setup Wizard. Note: You won’t follow the wizard instructions exactly, because they are for older accounts.
  6. In the setup wizard you have already created your Salesforce account, so click Next.
  7. On the setup wizard, your callback URL is displayed. Copy it and paste it into the Callback URL field on the Salesforce page.

On the Salesforce Page:

  1. Use Digital Signatures (or not, as you see fit).
  2. In the Available OAuth Scopes section, select Access and manage your data, Access your basic information, and Perform requests on your behalf at any time and use the arrow to move them to the Selected OAuth Scopes panel.
  3. Mobile Integration and Supported App types are up to you. You can always add these features later.
  4. Click Save. A summary page is displayed.
  5. On the summary page, the third panel down is API Integration. In it, find your Consumer Key and copy it to the Salesforce Setup Wizard.
  6. To the right of the Consumer Key is your Consumer Secret (you must click the link to show it). Copy and paste your secret into the setup wizard.
  7. Click Save. A success message is displayed.

Your Salesforce provider is now configured and available as an option for Social Login.

Salesforce auth_info Response

The JSON sample below shows an example of the profile data that Salesforce returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "url": "https://na7.salesforce.com/005A00BlahBlahQIA0",
    "preferredUsername": "example@example.com",
    "displayName": "Mr. Name",
    "name": {
      "formatted": "Mr. Name"
    },
    "photo": "https://c.na7.content.force.com/profilephoto/blah/T",
    "utcOffset": "-08:00",
    "email": "example@janrain.com",
    "identifier": "https://login.salesforce.com/id/00DA00BlahBlahaMAE/005A0000BlahBlahA0",
    "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
    "providerName": "Salesforce"
  },
  "merged_poco": {"urls": [
    {
      "type": "enterprise",
      "value": "https://na7.salesforce.com/services/Soap/c/25.0/123BlahBlahcBya"
    },
    {
      "type": "metadata",
      "value": "https://na7.salesforce.com/services/Soap/m/25.0/123BlahBlahcBya"
    },
    {
      "type": "partner",
      "value": "https://na7.salesforce.com/services/Soap/u/25.0/123BlahBlahcBya"
    },
    {
      "type": "rest",
      "value": "https://na7.salesforce.com/services/blah/example/v25.0/"
    },
    {
      "type": "sobjects",
      "value": "https://na7.salesforce.com/services/blah/example/v25.0/sobjects/"
    },
    {
      "type": "search",
      "value": "https://na7.salesforce.com/services/example/v25.0/search/"
    },
    {
      "type": "query",
      "value": "https://na7.salesforce.com/services/example/v25.0/query/"
    },
    {
      "type": "recent",
      "value": "https://na7.salesforce.com/services/example/v25.0/recent/"
    },
    {
      "type": "profile",
      "value": "https://na7.salesforce.com/123BlahBlahBlahQIA0",
      "primary": "true"
    },
    {
      "type": "feeds",
      "value": "https://na7.salesforce.com/services/example/v25.0/chatter/feeds"
    },
    {
      "type": "groups",
      "value": "https://na7.salesforce.com/services/example/v25.0/chatter/groups"
    },
    {
      "type": "users",
      "value": "https://na7.salesforce.com/services/example/v25.0/chatter/users"
    },
    {
      "type": "feed_items",
      "value": "https://na7.salesforce.com/services/example/v25.0/chatter/feed-items"
    }
  ], "preferredUsername": "example@example.com", "displayName": "Mr. Example", "name": {"formatted": "Fred Example"}, "photos": [
    {
      "type": "picture",
      "value": "https://c.na7.content.force.com/profilephoto/blah/F"
    },
    {
      "type": "thumbnail",
      "value": "https://c.na7.content.force.com/profilephoto/blah/T",
      "primary": "true"
    }
  ], "nickname": "example", "languagesSpoken": [
    "en_US"
  ], "updated": "2012-06-18T19:27:18.000+0000", "utcOffset": "-08:00", "organizations": [
    {
      "name": "example inc."
    }
  ], "emails": [
    {
      "value": "example@example.com",
      "type": "other"
    }
  ]},
  "provider": {
    "salesforce": {
      "locale": "en_US",
      "userType": "STANDARD",
      "active": "true"
    }
  }
}

Sina Weibo

Sina Weibo Setup Guide

Before You Start

You need a Sina Weibo account (which you can create at weibo.com). If you cannot read Chinese, you may want to use a browser that can translate the page for you.

Sina Weibo Provider Setup

To set up Sina Weibo as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Sina Weibo.
  5. Click Configure. This starts the Sina Weibo Setup Wizard.

    setup guide
  6. Visit http://open.weibo.com/apps/new.

  7. Enter an Application Name (no spaces) and select Web Application as the application type.

    Screen Shot 2015-06-10 at 9.28.30 AM]
  8. Fill in the following fields (image shown in English, see Figure 3):
    Application Name (应用名称)—Your application’s unique name.
    Application Website (应用地址)—The website on which the Sina Weibo login will be used. This should be a site that Sina Weibo can use to validate that the Sina Weibo login functions, so it may need to be a test site
    available publicly until the app is approved.
    Application Note (应用简介)—15-character description of the application.
    Application Description (应用介绍)—Long description of the application (must be at least 20 words).
    Security Domain (域名绑定)—Set this to No.
    Label (标签)—Up to three labels that describe how your app is used.
    Official Operating Account (官方运营帐号)—Developer account that you wish to use to represent your company when establishing a Weibo app.

    sina-weibo-3
  9. Add one 16×16, one 80×80, one 120×120, and three 450×300 PNG or JPG images in the image section:

    Screen Shot 2015-06-10 at 9.28.56 AM.png
  10. In the Advanced section add the callback URL listed in your Janrain Dashboard to the Callback Authorization and Deauthorization fields:

    sina-weibo-5
  11. Add the API key and secret to your Janrain Dashboard.

  12. To submit for review, you must include additional developer information (if you have not already) including passport/ID information (http://open.weibo.com/developers/identity/edit). Fill in the following fields:
    Real name (真实姓名)—Your name (no spaces allowed, use underscores).
    Whether foreigners (是否外籍)—Select It is (是) if the developer is not Chinese.
    Certificate Type (证件类型)—Select whether you are using an ID card or passport.
    ID Number (证件号码)—The ID number of the chosen card.
    ID Photo (证件照片)—A scan of the identification.

Troubleshooting

Error
Screen Shot 2015-06-10 at 9.29.4 AM
Solution

Check the application website from step 3 and ensure it refers to an accessible website.

Error
403, body -> {"error":"applications over the unaudited use restrictions!","error_code":21321,"..
Solution

The application is in development mode and rate limits are more restrictive. The app must be approved for wide use in production.

Error
"The reason: Since your technical reasons, the application address of
the page can not open, please check the server status"
Solution

Ensure that the application website from step 3 refers to an accessible website using Sina Weibo authentication.

Sina Weibo auth_info Response

The JSON sample below shows an example of the profile data that Sina Weibo returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
    "followers": ["http://www.weibo.com/u/123Blah562",
        "http://www.weibo.com/u/123Blah454",
        "http://www.weibo.com/u/123Blah402"
    ],
    "profile": {
        "photo": "http://tp3.sinaimg.cn/280Blah730/50/123Blah764/1",
        "gender": "male",
        "name": {
            "formatted": "儷黑"
        },
        "identifier": "http://www.weibo.com/u/280Blah730",
        "displayName": "儷黑",
        "providerName": "Sina Weibo",
        "url": "http://www.weibo.com/u/280Blah730"
    },
    "merged_poco": {
        "profileUrl": "http://www.weibo.com/u/280Blah730",
        "photos": [{
            "value": "http://tp3.sinaimg.cn/280Blah730/50/563Blah1764/1",
            "primary": true,
            "type": "profile"
        }],
        "gender": "male",
        "urls": [{
            "value": "http://www.weibo.com/u/280Blah730",
            "type": "profile"
        }],
        "name": {
            "formatted": "儷黑"
        },
        "aboutMe": "I am a test account. 还没有发过微博?要不先自我介绍一下? This is a semicolon: followed by a less than &lt;.!!!",
        "nickname": "儷黑",
        "id": "http://www.weibo.com/u/280Blah730"
    },
    "stat": "ok",
    "following": ["http://www.weibo.com/u/123Blah562", "http://www.weibo.com/u/123Blah454"],
    "friendships": ["http://www.weibo.com/u/123Blah562", "http://www.weibo.com/u/123Blah454"],
    "accessCredentials": {
        "uid": "123Blah730",
        "accessToken": "2.00Ib6XDD0BlahBlahBlah6baoyc1vB",
        "expires": 0,
        "type": "oauth2"
    }
}

SoundCloud

SoundCloud Setup Guide

Before You Start

Configuration requires a SoundCloud account.

SoundCloud Identity Provider Setup

To set up SoundCloud as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click SoundCloud.
  5. Click Configure. This starts the SoundCloud Setup Wizard.

    soundcloud-1
  6. Click the link to log in to SoundCloud’s developers site.

  7. On the SoundCloud site, click Register a new application.

    SoundCloud Register App
  8. A new page is displayed. Enter a Name for your application (end users are likely to see this name). Click Register.

  9. Go back to the setup wizard and click Next.

  10. Copy the Redirect URI value.

    copy-redirect-uri-21
  11. On the SoundCloud Application Editor page, paste your Redirect URI into the field provided.

    soundcloud-app-editor-page-21
  12. On the setup wizard, click Next.

  13. On the SoundCloud Application Editor page, click Save (you stay on this page). Note: You must click Save here before you click Save on the setup wizard, otherwise your configuration will be lost.

  14. Copy and paste the Client ID and Client Secret from this page onto the setup wizard.

  15. On the setup wizard, click Save.

    soundcloud-2

Your SoundCloud provider is now configured and available as an option for Social Login.

SoundCloud auth_info Response

The JSON sample below shows an example of the profile data that SoundCloud returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{"profile":
  {"name": {"formatted": "sandman rpx"},
   "preferredUsername": "l'RPX",
   "photo":
    "https://i1.sndcdn.com/avatars-000blah41790-blah-large.jpg?1234c77",
   "displayName": "sandman rpx",
   "identifier": "http://soundcloud.com/12Blah43",
   "url": "http://soundcloud.com/blah-example",
   "providerName": "SoundCloud"},
 "accessCredentials":
  {"uid": "1blah543",
   "refreshToken":"12fa858Blah1a9a3e57ceBlah05f5378",
   "accessToken": "1-19631-165Blah3-6bfBlah5247f0f5",
   "expires": 0,
   "type": "oauth2"},
 "friendships":
  ["http://soundcloud.com/blah2416", "http://soundcloud.com/16Blah22"],
 "followers":
  ["http://soundcloud.com/blah8464",
   "http://soundcloud.com/blah2416",
   "http://soundcloud.com/blah6922"],
 "merged_poco":
  {"name": {"formatted": "sandman rpx"},
   "currentLocation":
    {"locality": "little beirut", "country": "United States"},
   "aboutMe":
    "Je suis une personne super. Sérieusement ... vraiment cool.",
   "photos":
    [{"value":
       "https://i1.sndcdn.com/avatars-0000blah1790-blah-large.jpg?3bedc77",
      "type": "avatar"}],
   "urls": [
         {
            "value":"http://rpxnow.com",
            "type":"A very cool product"
         },
         {
            "value":"http://example.com",
            "type":"A very cool company."
         },
         {
            "value":"http://last.fm/user/Your username or the url to your profile",
            "type":"last fm"
         }
      ],
   "preferredUsername": "l'RPX",
   "accounts":
    [{"domain": "facebook.com", "username": "rpxdoc"},
     {"domain": "twitter.com", "username": "rpxdoc"},
     {"domain": "myspace.com", "username": "rpxdoc"},
     {"domain": "rpxdoc.tumblr.com", "username": "rpxdoc"}],
   "profileUrl": "http://soundcloud.com/blah",
   "id": "http://soundcloud.com/16blah43"},
 "following":
  ["http://soundcloud.com/blah49",
   "http://soundcloud.com/blah2416",
   "http://soundcloud.com/blah591",
   "http://soundcloud.com/blahZ922"],
 "stat": "ok"
}

Tencent Weibo

Tencent Weibo Setup Guide

Before You Start

You will need:

  • An operational Tencent Weibo developer account. If you do not have an account, register on their website.
  • A Tencent Weibo web application.

Tencent Weibo Identity Provider Setup

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click Tencent Weibo.
  5. Click Configure. This starts the Tencent Weibo Setup Wizard.
  6. On the setup wizard, the first screen gives instructions for adding a Tencent Weibo Developer account. Add an account if necessary; otherwise, click Next.
  7. Log in to the Tencent Weibo developer’s account.
  8. Click Manage in the top-level navigation bar.
  9. Select the web application to be used for configuration on the Tencent Weibo site.
  10. Click Basic Information in the side-level navigation bar.
  11. Copy the Application URL from the setup wizard and paste it on the Tencent Weibo developer page.
  12. Click Application on the side-level navigation bar.
  13. On the setup wizard, click Next.
  14. Copy the App Key and App Secret from your Tencent Weibo developer page, and paste them to the setup wizard.

    tencent-weibo-1
  15. On the setup wizard, click Save. A confirmation screen is displayed.

Your Tencent Weibo provider is now configured and available as an option for Social Login.

Tencent Weibo auth_info Response

The JSON sample below shows an example of the profile data that Tencent Weibo returns. Providers can change their profile response at any time, so be sure to test the current response.

{
   "stat":"ok",
   "profile":{
      "providerName":"Tencent Weibo",
      "identifier":"https://t.qq.com/12345678901234567890",
      "preferredUsername":"RpxStaging",
      "displayName":"RpxStaging",
      "birthday":"1976-04-03",
      "gender":"male",
      "providerSpecifier":"tencentweibo"
   },
   "merged_poco":{
      "id":"https://t.qq.com/12345678901234567890",
      "nickname":"RpxStaging",
      "displayName":"RpxStaging",
      "preferredUsername":"RpxStaging",
      "gender":"male",
      "status":"Janrain is making my life easier, every day!",
      "currentLocation":{
         "formatted":"中国 北京 东城",
         "type":"currentLocation"
      },
      "birthday":"1976-04-03",
      "addresses":[
         {
            "formatted":"中国 北京 东城",
            "type":"currentLocation"
         }
      ]
   },
   "followers":[
      "https://t.qq.com/123"
   ],
   "following":[
      "https://t.qq.com/456",
      "https://t.qq.com/789",
      "https://t.qq.com/012"
   ],
   "provider":{
      "tencentweibo":{
         "idolNum":3,
         "addressCodes":{
            "city_code":"1",
            "country_code":"1",
            "province_code":"11"
         },
         "fansNum":1,
         "industryCode":0,
         "education":[

         ],
         "tweetInfo":{
            "origtext":"Janrain is making my life easier, every day!",
            "text":"Janrain is making my life easier, every day!",
            "country_code":"USA",
            "emotiontype":0,
            "from":"微博开放平台",
            "fromurl":"http://wiki.open.t.qq.com/index.php/%E4%BA%A7%E5%93%81%E7%B1%BBFAQ#.E6.8F.90.E4.BA.A4.E5.BA.94.E7.94.A8.E6.9D.A5.E6.BA.90.E5.AD.97.E6.AE.B5.E5.AE.A1.E6.A0.B8.E8.83.BD.E5.BE.97.E5.88.B0.E4.BB.80.E4.B9.88.E5.A5.BD.E5.A4.84.EF.BC.9F\n",
            "id":"362574018409638",
            "latitude":"0",
            "longitude":"0",
            "location":"美国",
            "self":1,
            "status":0,
            "timestamp":1391556865,
            "type":1
         },
         "isRealName":false
      }
   }
}

Tumblr

Tumblr Setup Guide

Before You Start

Configuration requires a Tumblr developer’s account.

Tumblr Identity Provider Setup

To set up Tumblr as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the right side of the page, click the Provider Configuration link. The Provider Configuration page is displayed.
  4. In the list on the right, click Tumblr.
  5. Click Configure. This starts the Tumblr Setup Wizard.

    tumblr-1
  6. Log in to Tumblr and click the second link in the setup wizard.

  7. Click the green Register application button at the bottom of the Tumblr apps page.

  8. Enter the information requested.

  9. For the Default Callback URL field, go to the setup wizard and click Next.

  10. Copy the value on the setup wizard and paste it into the field on the Tumblr page.

  11. When you are finished with the Tumblr page, click Register. The apps page is displayed, with your new app at the bottom of the list.

  12. On the setup wizard, click Next.

  13. On the Tumblr page, copy the OAuth Consumer Key associated with your newly-created application. Paste it into the App Key field (located under the app listing) on the setup wizard.

  14. On the Tumblr page, click Show Secret Key (located under your app).

  15. Copy the Secret Key and paste it into the App Secret field on the setup wizard.

  16. Click Save.

    tumblr-2

Your Tumblr provider is now configured and available as an option for Social Login.

Tumblr auth_info Response

The JSON sample below shows an example of the profile data that Tumblr returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "providerName": "Tumblr",
    "identifier": "http://rpxdoc.tumblr.com",
    "displayName": "rpxdoc",
    "name": {
      "formatted": "rpxdoc"
    }
  },
  "merged_poco": {
    "id": "http://rpxdoc.tumblr.com",
    "nickname": "rpxdoc",
    "displayName": "rpxdoc",
    "name": {
      "formatted": "rpxdoc"
    },
    "urls": [
      {
        "value": "http://rpxdoc.tumblr.com/",
        "type": "blog",
        "primary": true
      }
    ]
  },
  "followers": [
    "http://rpxdoc.tumblr.com"
  ],
  "following": [
    "http://staff.tumblr.com",
    "http://rpxdoc.tumblr.com"
  ],
  "friendships": [
    "http://rpxdoc.tumblr.com"
  ],
  "accessCredentials": {
    "oauthToken": "9zNHQJgW40BlahBlahBlahNUTYBlahBlahBlahuZb735MmFyo2",
    "oauthTokenSecret": "1a19PSSCBlahBlahBlahZz7KS7QzIIomop4vFpGF7c0JRjeaOZ",
    "uid": "rpxdoc",
    "type": "oauth1"
  }
}

Twitter

Twitter Setup Guide

Before You Start

Configuration requires a Twitter developer’s account.

Twitter Identity Provider Setup

To set up Twitter as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button )
  4. In the Provider list on the right side of the page, click Twitter.
  5. Click Configure. The Twitter Setup Wizard appears.

    twitter-1
  6. If you do not have a Twitter account, create one.

  7. Sign in to Twitter and click the link displayed on the Twitter Setup Wizard. The Twitter Apps page is displayed in your browser.

  8. On the setup wizard, click Next.

  9. On the Twitter Apps page, click Create New App. The Create an application page is displayed.

    twitter-2
  10. Enter a Name and Description for your application.

  11. On the setup wizard, copy the WebSite and Callback URL values and paste them to the corresponding boxes on the Create an application page. Make sure you remove any leading blank spaces from the URLs.

  12. Scroll to the bottom of the Create an application page and select the Yes, I agree box.

  13. Click Create your Twitter application. The YourAppName page is displayed.

  14. On the setup wizard, click Next.

    twitter-3
  15. Set your Twitter app to use the same access level shown on the setup wizard:

    1. On the YourAppName page, click the Permissions tab.
    2. Select the Access box that corresponds to the access level displayed on the setup wizard.

      twitter-4
  16. On the YourAppName page, click the Settings tab.

  17. Select the Allow this application to be used to Sign in with Twitter box.

  18. You can change your app icon by clicking Choose File in the Application Icon section.

  19. In the Organization section, you can enter your Organization Name and Organization Website (if appropriate).

  20. At the bottom of the page, click Update Settings.

  21. Click the API Keys tab.

  22. In the Token Actions section, click Create My Access Token.

  23. On the setup wizard, click Next.

    twitter-5
  24. On the MyAppName page (in the Applications Settings section), copy the API Key and API Secret values and paste them to the Consumer Key and Consumer Secret boxes on the setup wizard.

    twitter-6
  25. On the setup wizard, click Save.

    twitter-7
  26. Click Close.

You may now add Twitter as a Social Login identity provider on the Janrain Dashboard.

Twitter auth_info Response

The JSON sample below shows an example of the profile data that Twitter returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "profile": {
    "photo": "http://a0.twimg.com/sticky/default_profile_images/default_blah.png",
    "name": {
      "formatted": "Rpx Doc"
    },
    "displayName": "Rpx Doc",
    "preferredUsername": "rpxdoc",
    "url": "http://twitter.com/rpxdoc",
    "providerName": "Twitter",
    "identifier": "http://twitter.com/account/profile?user_id=blah16628"
  },
  "followers": [
    "http://twitter.com/account/profile?user_id=blah75313",
    "http://twitter.com/account/profile?user_id=blah7641",
    "http://twitter.com/account/profile?user_id=blah73184",
    "http://twitter.com/account/profile?user_id=blah60668",
    "http://twitter.com/account/profile?user_id=blah41938"
  ],
  "friendships": [
    "http://twitter.com/account/profile?user_id=blah73184"
  ],
  "accessCredentials": {
    "oauthToken": "174Blah28-xGgpANYl2hF2scbBlahBlahBlahuAL7blahRA3xv",
    "type": "OAuth",
    "oauthTokenSecret": "rsqxvURWBlahBlahBlahI5i54oNVjJd7Tblah25Ys"
  },
  "merged_poco": {
    "name": {
      "formatted": "Rpx Blah"
    },
    "displayName": "Rpx Blah",
    "urls": [
      {
        "type": "profile",
        "value": "http://twitter.com/rpxdoc"
      }
    ],
    "photos": [
      {
        "type": "other",
        "value": "http://a0.twimg.com/sticky/default_profile_images/blah.png"
      }
    ],
    "preferredUsername": "rpxdoc"
  },
  "stat": "ok",
  "following": [
    "http://twitter.com/account/profile?user_id=blah88593",
    "http://twitter.com/account/profile?user_id=blah73184"
  ]
}

VeriSign

VeriSign auth_info Response

The JSON sample below shows an example of the profile data that VeriSign returns. VeriSign can change their profile response at any time, so be sure to test their current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "sreg": {
    "dob": "1985-01-01",
    "postcode": "34342",
    "country": "United States of America",
    "nickname": "rpx",
    "language": "English",
    "fullname": "R P X Doc",
    "gender": "M",
    "timezone": "America/New_York",
    "email": "rpxdoc@example.com"
  },
  "profile": {
    "name": {
      "formatted": "R P X Doc"
    },
    "displayName": "R P X Doc",
    "preferredUsername": "rpx",
    "url": "https://blah.pip.verisignlabs.com/",
    "gender": "male",
    "utcOffset": "-05:00",
    "birthday": "1985-01-01",
    "providerName": "VeriSign PIP",
    "identifier": "https://blah.pip.verisignlabs.com/",
    "email": "rpxdoc@example.com"
  },
  "merged_poco": {
    "name": {
      "formatted": "R P X Doc"
    },
    "displayName": "R P X Doc",
    "addresses": [
      {
        "country": "United States of America",
        "postalCode": "34342"
      }
    ],
    "urls": [
      {
        "type": "other",
        "value": "https://blah.pip.verisignlabs.com/"
      }
    ],
    "preferredUsername": "rpx",
    "gender": "male",
    "utcOffset": "-05:00",
    "birthday": "1985-01-01",
    "emails": [
      {
        "type": "other",
        "value": "rpxdoc@example.com"
      }
    ]
  },
  "stat": "ok"
}

VK

VK Setup Guide

Before You Start

To configure VK as an identity provider, you need a VK account. Instructions for creating a VK account are given in the following procedure.

VK Identity Provider Setup

To set up VK as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click VK.
  5. Click Configure. This starts the VK Setup Wizard.

    vk-1
  6. If you don’t already have a VK account, click the link on the setup wizard to create one.

  7. After you log in to VK, click the link to the VK developer site.

  8. On the VK Create an Application page, enter a Title for your application.

  9. For a Category, select Website.

  10. To find your Site Address and Base Domain, go back to the setup wizard and click Next.

  11. Copy the Site Address and Base Domain values and enter them on the VK page. Note that your base domain does not include http://.

  12. Click Connect Application (located at the bottom of the page).

  13. A dialog is displayed. It informs you that VK will send you a text message.

    1. Make sure that your phone number is correct.
    2. You will receive the message within a few minutes. Enter the text code you receive and press Save.
  14. A page that shows your app details is displayed.

    vk-2
  15. On this page, click Save again.

  16. On the setup wizard, click Next. The new page has fields for Application ID and Secure Key.

  17. On the VK page, click the Settings tab (located on the left).

    vk-3
  18. Copy the Application ID and Secure Key values and paste them to the corresponding fields on the setup wizard.

  19. On the setup wizard, click Save.

    vk-4

VK is now configured as an identity provider and is selectable on the Janrain Dashboard.

VK auth_info Response

The JSON sample below shows an example of the profile data that VK returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "stat": "ok",
  "profile": {
    "providerName": "VK",
    "identifier": "http://vk.com/id18Blah874",
    "displayName": "Rpx Doc",
    "preferredUsername": "rpxdoc",
    "name": {
      "formatted": "Rpx Doc",
      "givenName": "Rpx",
      "familyName": "Doc"
    },
    "url": "http://vk.com/id18Blah874",
    "photo": "http://cs410731.userapi.com/u18Blah874/a_acBlah43.jpg",
    "utcOffset": "-08:00",
    "birthday": "1954-01-01",
    "gender": "male",
    "phoneNumber": "555 555 5555"
  },
  "merged_poco": {
    "id": "http://vk.com/id18Blah874",
    "preferredUsername": "rpxdoc",
    "displayName": "Rpx Doc",
    "gender": "male",
    "profileUrl": "http://vk.com/id18Blah874",
    "status": "I am the bomb.",
    "name": {
      "formatted": "Rpx Doc",
      "givenName": "Rpx",
      "familyName": "Doc"
    },
    "birthday": "1954-01-01",
    "utcOffset": "-08:00",
    "urls": [
      {
        "value": "http://vk.com/id18Blah874",
        "type": "profile"
      }
    ],
    "phoneNumbers": [
      {
        "value": "555 555 5556",
        "type": "home"
      },
      {
        "value": "555 555 5555",
        "type": "mobile"
      }
    ],
    "movies": [
      "George of the jungle     Greatest movie ever!"
    ],
    "tvShows": [
      "Mash",
      "Mr Fink",
      "Sploosh",
      "Ploosh",
      "Smoosh"
    ],
    "interests": [
      "Monkey juggling"
    ],
    "photos": [
      {
        "value": "http://cs410731.userapi.com/u184415874/blaha8725.jpg",
        "type": "other"
      },
      {
        "value": "http://cs410731.userapi.com/u184415874blah93001.jpg",
        "type": "other"
      },
      {
        "value": "http://cs410731.userapi.com/u184415874/blah03a43.jpg",
        "type": "other"
      }
    ],
    "organizations": [
      {
        "name": "Oregon College of Oriental Medicine",
        "department": "Acupuncture",
        "type": "school",
        "endDate": "1976"
      },
      {
        "name": "Cleveland High School",
        "type": "school"
      }
    ]
  },
  "friends": [
    "http://vk.com/iblah591843",
    "http://vk.com/iblah591952"
  ],
  "following": [
    "http://vk.com/iblah985579"
  ],
  "accessCredentials": {
    "accessToken": "239cac0f79Blah1629Blah8df1294ea0b0Blah129615e8f7BlahBlaha853a9efa0f1810",
    "uid": "blah15874",
    "expires": 1349983643,
    "scopes": "friends,status,offline,ads,audio,docs,groups,notes,notifications,offers,pages,photos,questions,stats,video",
    "type": "oauth2"
  }
}

WeChat

WeChat Setup Guide

To set up WeChat as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (https://dashboard.janrain.com/signin).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the Provider list on the right side of the page, click WeChat.
  5. Click Configure. The WeChat Setup Wizard is displayed.
    Set up your app to work with WeChat Page
  6. On the wizard, click the WeChat (developer account) link to create a WeChat developer account. Note: You will need a phone and ID from mainland China in order to sign up as a developer.
  7. On the wizard, click the WeChat (sign-in) link to sign in to WeChat.
    1. Navigate to the Control Center.
    2. To create an application, click the green button labeled Create a Web Application.
  8. On the wizard, click Next.
    Add app info and fill out registration form Page
  9. On the app creation page:
    1. Name your app and add photos as instructed.
    2. Click Next.
    3. Add the Callback URL displayed on the wizard to the first field (labeled Authorized Callback URL).
    4. Download the WeChat registration form.
    5. Fill out the form as instructed.
    6. Upload it on the same form.
    7. Click the green button to submit your app for approval.
  10. On the wizard, click Next.
    Enter the app key and secret Page
  11. After your app has been approved (which may take several days), on the wizard enter your app’s Application Key (app ID) and Application Secret (API Key).
  12. On the wizard, click Save.
    WeChat enabled Page
  13. If you need to change these values, click Modify These Settings.
  14. On the wizard, click Close.

Your WeChat provider is now configured and available as an option for Social Login.

WeChat auth_info Response

The JSON sample below shows an example of the profile data that WeChat returns. Providers can change their profile response at any time, so be sure to test the current response.

{
  "stat": "ok",
  "profile": {
    "address": {
      "country": "US",
      "formatted": ", US",
      "locality": "",
      "region": ""
    },
    "displayName": "john smith",
    "gender": "undisclosed",
    "identifier": "http://wechat.com/sns/userinfo/og9KUw1ohRfu-wPm2vRA2VH_4g4k",
    "languagesSpoken": [ "en" ],
    "photo": "http://wx.qlogo.cn/mmopen/GNOGjBicgZEkxnJdQAEVBqPuLmooEQEAwbZ3NicicBkibeFMkF6GodEZL73icicOg1oqSZ2LorFobrnk0GQsyp74b4X1s5V4vnMyibV/0",
    "providerName": "WeChat",
    "providerSpecifier": "wechat",
    "provider_id": "og9KUw1ohRfu-wPm2vRA2VH_4g4k"
  },
  "accessCredentials": {
    "accessToken": "abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde1",
    "clientId": "abcde12345abcde123",
    "expires": 1472687338,
    "scopes": "snsapi_login",
    "type": "wechat",
    "uid": "abcde12345abcde12345abcde123"
  }
}

WordPress

WordPress auth_info Response

The JSON sample below shows an example of the profile data that WordPress returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
  "profile": {
    "name": {
      "formatted": "rpxdoc"
    },
    "displayName": "rpxdoc",
    "preferredUsername": "rpxdoc",
    "url": "http://rpxdoc.wordpress.com/author/rpxdoc/",
    "providerName": "Wordpress.com",
    "identifier": "http://rpxdoc.wordpress.com/"
  },
  "merged_poco": {
    "name": {
      "formatted": "rpxdoc"
    },
    "urls": [
      {
        "value": "http://rpxdoc.wordpress.com/author/rpxdoc/",
        "type": "other"
      }
    ],
    "displayName": "rpxdoc",
    "preferredUsername": "rpxdoc"
  },
  "stat": "ok"
}

Xing

Xing Setup Guide

Before You Start

To configure Xing as an identity provider, you need a Xing account with developer credentials. Instructions for creating a Xing developer account are given in the following procedure.

Xing Identity Provider Setup

Xing requires separate credentials for testing and production environments. This section provides instructions for adding an identity provider to each environment.

Setup Instructions for a Testing Environment

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click Xing.
  5. Click Configure. This starts the Xing Setup Wizard.

    xing-1
  6. On the setup wizard, click the link and sign in to your Xing account (if you are not already signed in).

  7. Navigate to the My Apps section of Xing (or click the provided link).

  8. On the My Apps page, either Edit an existing client or create a new client.

  9. On the setup wizard, click Next four times.

  10. Copy the test Consumer key and Consumer secret from the Xing application, and paste them into the fields (of the same name) in the setup wizard.

    xing-2
  11. Click Save.

Xing is now configured as an Identity Provider for test environments. Before your Social Login functionality is deployed to production, follow the Setup Instructions for a Production Environment to update your credentials to the Xing Production Key.

Setup Instructions for a Production Environment

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. Click the Manage Engage App button (Manage Engage App button) corresponding to the property to configure.
  3. On the Providers tile, click the Manage Providers icon.
  4. In the list on the right, click Xing.
  5. Click Configure. This starts the Xing Setup Wizard.
  6. On the setup wizard, click the link and sign in to your Xing account (if you are not already signed in).
  7. Navigate to the My Apps section of Xing (or click the provided link).
  8. On the setup wizard, click Next.
  9. The setup wizard displays an informational note. Click Next.
  10. The values you need to request a Production Key are displayed in the Janrain Dashboard. Return to the Xing My App page and click the Get a Production Key button associated with the app to be used.

    xing-3
  11. Copy the values from the setup wizard and paste them into the corresponding fields in the Xing My App page.

  12. On the Xing My App page, click Get production key. Xing will send you a PIN electronically by email and physically through the postal service.

  13. Close the setup wizard. The entered values will still be valid once the PINs are entered and your Xing app is verified.

  14. Once the Xing app is verified, copy the Consumer Key and Consumer Secret associated with the Production Key.

  15. Repeat steps 1-4. On the setup wizard, click Next until you reach the Consumer Key and Consumer Secret page (about four times).

  16. Paste the production Consumer Key and Consumer Secret values into the appropriate fields in the setup wizard.

  17. Click Save.

Xing is now configured as an identity provider and is selectable on the Janrain Dashboard.

Xing auth_info Response

The JSON sample below shows an example of the profile data that Xing returns. Providers can change their profile response at any time, so be sure to test the current response.

{
  "stat": "ok",
  "profile": {
    "providerName": "Xing",
    "identifier": "https://xing.com/123456789012345",
    "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
    "displayName": "Prof. Example",
    "name": {
      "givenName": "Prof.",
      "familyName": "Example"
    },
    "email": "example@example.com",
    "url": "https://www.xing.com/profile/prof_example",
    "photo": "https://x1.xingassets.com/pubimg/users/4/2/d/123456789.140x185.jpg",
    "utcOffset": "-07:00",
    "address": {
      "streetAddress": "123 Winter ave",
      "locality": "portland",
      "region": "Oregon",
      "postalCode": "10001",
      "country": "US"
    },
    "birthday": "1963-09-05",
    "gender": "male",
    "phoneNumber": "5555555555",
    "providerSpecifier": "xing"
  },
  "merged_poco": {
    "id": "https://xing.com/123456789_abcdefghijk",
    "displayName": "Prof. Example",
    "gender": "male",
    "profileUrl": "https://www.xing.com/profile/prof_example",
    "name": {
      "givenName": "Prof.",
      "familyName": "Example"
    },
    "birthday": "1963-09-05",
    "utcOffset": "-07:00",
    "ims": [
      {
        "value": "123456789123456789",
        "type": "icq"
      },
      {
        "value": "example",
        "type": "googletalk"
      }
    ],
    "emails": [
      {
        "value": "example@example.com",
        "type": "other",
        "primary": true
      },
      {
        "value": "example@example.com",
        "type": "home"
      },
      {
        "value": "example@example.com",
        "type": "work"
      }
    ],
    "languagesSpoken": [
      "pl",
      "en"
    ],
    "urls": [
      {
        "value": "https://www.xing.com/profile/prof_example",
        "type": "profile"
      }
    ],
    "phoneNumbers": [
      {
        "value": "5555555555",
        "type": "home",
        "primary": true
      },
      {
        "value": "6666666666",
        "type": "cell"
      },
      {
        "value": "7777777777",
        "type": "fax"
      },
      {
        "value": "8888888888",
        "type": "work"
      },
      {
        "value": "9999999999",
        "type": "work cell"
      },
      {
        "value": "1111111111",
        "type": "work fax"
      }
    ],
    "addresses": [
      {
        "streetAddress": "123 Winter ave",
        "locality": "portland",
        "region": "OR",
        "postalCode": "10001",
        "country": "US"
      },
      {
        "streetAddress": "123 Winter st",
        "locality": "Portland, OR",
        "region": "Oregon",
        "postalCode": "10001",
        "country": "US"
      }
    ],
    "interests": [
      "swimming",
      "testing"
    ],
    "photos": [
      {
        "value": "https://x1.xingassets.com/pubimg/users/4/2/d/123456789,1.140x185.jpg",
        "type": "large"
      },
      {
        "value": "https://x1.xingassets.com/pubimg/users/4/2/d/98764531,1.18x24.jpg",
        "type": "mini_thumb"
      },
      {
        "value": "https://x1.xingassets.com/pubimg/users/4/2/d/abcdefghijk.19013361,1.30x40.jpg",
        "type": "thumb",
        "primary": true
      },
      {
        "value": "https://x1.xingassets.com/pubimg/users/4/2/d/lmnopqrstuv.19013361,1.57x75.jpg",
        "type": "medium_thumb"
      },
      {
        "value": "https://x1.xingassets.com/pubimg/users/4/2/d/wxyz.19013361,1.70x93.jpg",
        "type": "maxi_thumb"
      }
    ],
    "organizations": [
      {
        "name": "Example Group",
        "title": "Officer",
        "type": "work",
        "startDate": "2009-05",
        "description": "Setting examples"
      },
      {
        "name": "Private Company",
        "title": "Product Tester",
        "type": "work",
        "startDate": "2001-08",
        "endDate": "2007-05",
        "description": "Tested their products"
      },
      {
        "name": "Online State",
        "type": "school",
        "startDate": "2007-07",
        "endDate": "2012-04",
        "description": "webrnmainframe"
      }
    ]
  },
  "friends": [
    "https://xing.com/321654978_0b4a42",
    "https://xing.com/123456789_e6c959"
  ],
  "accessCredentials": {
    "oauthToken": "1234567890abcdefghij",
    "oauthTokenSecret": "abcdefghij123456789",
    "uid": "987654321987654321",
    "type": "oauth1"
  },
  "provider": {
    "xing": {
      "haves": [
        "testing",
        "automation"
      ],
      "qualifications": [
        "WISCEM",
        "WONQR",
        "BLAY"
      ],
      "awards": [
        {
          "name": "Award",
          "date_awarded": 2010,
          "url": "http://example.com"
        },
        {
          "name": "Premium",
          "date_awarded": 2009,
          "url": "http://google.com"
        }
      ],
      "wants": [
        "web design",
        "marketing",
        "html"
      ],
      "organisationMember": [
        "STOA",
        "Example Now!"
      ]
    }
  }
}

Yahoo!

Yahoo! Setup Guide

Before You Start

To configure Yahoo! as an identity provider, you need a Yahoo! Developer Network account. Instructions for creating this account are given in the following procedure.

Yahoo! Identity Provider Setup

To set up Yahoo! as an identity provider, follow these steps:

  1. Sign in to the Janrain Dashboard (dashboard.janrain.com).
  2. On the property you want to configure, click the Manage Engage App button ( Manage Engage App button ).
  3. On the Providers tile, click the Manage Providers button ( Manage Providers Button ).
  4. In the list on the right, click Yahoo!.
  5. Click Configure. The Yahoo! Setup Wizard appears.

    yahoo-1
  6. If you just created a Yahoo! account, or have not yet accessed the Yahoo! Developer’s Network, acquire a Yahoo! Developer Network account:

    1. Click the developers.yahoo.com hyperlink. The developer.yahoo.com page is displayed.
    2. On the developer.yahoo.com page, in the User box on the upper-right corner of the page, select My Projects.
    3. Click Accept to agree to Yahoo!’s Terms of Use.
  7. On the Yahoo! Setup Wizard, click Generate to create a Yahoo! application. The Allow RPXNOW to create a Yahoo! application for you page is displayed.

    Allow RPXNOW to create a Yahoo! application for you page
  8. Click Allow. The Your Yahoo! application has been created! page is displayed.

    yahoo-3
  9. Click Close. If this does not close the page, click the window Close button.

  10. On the Yahoo! Setup Wizard, click Next. The Verify Your Domain with Yahoo! page is displayed.

    yahoo-4
  11. On the Yahoo! Setup Wizard, click the domain verification page link. The Manage Your Domains page is displayed.

    yahoo-5
  12. On the Manage Your Domains page, click the Verify button next to your domain. The Verify Your Domain page appears.

    yahoo-6
  13. On the Verify Your Domain page, copy the filename from step 1 and paste it into the box on the Yahoo! Setup Wizard.

  14. On the Yahoo! Setup Wizard, click Create File. If successful, the Verify Your Domain With Yahoo! page displays the new file name along with a Modify button.

    yahoo-7
  15. On the Verify Your Domain page, click Verify Domain. If successful, the message “Congratulations! YourDomainName was successfully verified! You may now delete the verification file.” is displayed on the page.

  16. On the Verify Your Domain page, click Close.

  17. On the Yahoo! Setup Wizard, click Done. The Yahoo! is currently enabled page is displayed.

    yahoo-8
  18. On the Yahoo! Setup Wizard, click Close.

Yahoo! is now configured as an identity provider and is selectable on the Janrain Dashboard.

Yahoo! auth_info Response

The JSON sample below shows an example of the profile data that Yahoo! returns. Providers can change their profile response at any time, so be sure to test the current response.

Note: We have obfuscated the identifier codes in this sample.

{
    "stat": "ok",
    "profile": {
        "preferredUsername": "Rpx",
        "url": "http://profile.yahoo.com/DSFKBlahBlahBlahQY34YDESFI",
        "gender": "male",
        "birthday":"1980-01-01",
        "photo": "http://l.yimg.com/a/i/identity2/profile_blah.png",
        "name": {
            "formatted":"Rpx Doc",
            "givenName":"Rpx",
            "familyName":"Doc"
        },
        "email": "rpxdoc@yahoo.com",
        "displayName": "Rpx",
        "utcOffset": "-08:00",
        "address": {
            "formatted": "Oregon"
        },
        "identifier": "https://me.yahoo.com/a/AqqhBlahBlahBlahBlahSE7mU3E-#223bc",
        "verifiedEmail": "2013-11-22 21:01:09.601637 +0000",
        "providerName": "Yahoo!"},
    "merged_poco": {
        "preferredUsername": "Rpx",
        "nickname": "Rpx",
        "name":{
            "formatted":"Rpx Doc",
            "givenName":"Rpx",
            "familyName":"Doc"
        },
        "birthday":"1980-01-01",
        "profileUrl": "http://profile.yahoo.com/DSFKBlahBlahBlahQY34YDESFI",
        "urls": [
            {
                "type":"profile",
                "value":"http://profile.yahoo.com/DSFKBlahBlahBlahQY34YDESFI"
            }
        ],
        "gender": "male",
        "photos": [
            {
                "value":"http://l.yimg.com/a/i/identity2/profile_blah.png",
                "type":"other"
            }
        ],
        "languagesSpoken": [
            "en-US"
        ],
        "currentLocation": {
            "formatted": "Oregon"
        },
        "updated": "2012-08-29T16:03:11Z",
        "emails": [
            {
                "value":"rpxdoc@yahoo.com",
                "type":"other"
            }
        ],
        "status":"set_status timestamp test: Tue, 25 Sep 12 17:57:54 +0000",
        "displayName": "Rpx",
        "utcOffset": "-08:00"},
    "accessCredentials": {
        "oauthToken": "A=SWkxeHTnphuLz.cXaOWX0gh23VhrBlahBlahBlahBlah6aON2Tbye4KUaWWZw0ycWL1izBlahBlahBlahBlaheM38UZVCQ8Vq8gsx7reCrm3pPOP4Q5xamCqzf6EFyFHUarFwzCoP6sfax3KhvYEvovSDwOETRCrHlKCPsB4IomnPjP_.WW7oBFpmxrBlahBlahBlahbbT3A_2zT9b4e9isSguPK7cE030r0FQbpjofkfTYMxwLMTqAQyLXYDcZw6Ns93xWyLyhbLkUEbCTwlkEnExmph_BU1OkzLL9MAwoNk9MS5aIYLIzRr3S4eQ6wPDdYT0N52ydK5j0cs4uVrei80_CDWma6ttkAxYdDwNZgPuiir9NQJfToUos2A7UC2uyZkEbkJFkHB.a7x70nTY.E.hyzvlYezhoCSBlahBlahBlah.QKjI8ajLn1_HKYbY95pyOASyf9HhYGAm1SVISQ1g9Pm2dhcuvQ1jAd9lCasda24TZEmo18O3u6j.W6g4dWVjINRzKD1yBlahBlahBlahuA_kuodDp_TdYWZNozyioEoetlyE4j5QMMGW3E6tnbaL1wTWByvUR_JSb.1t4iyAo3rJ0jg40HxO.2z4G.2MxC4DOtYnmBLD8j0dds2xlisNTcFQPDT9UVNg6E_kt7md1OFPnwUYh6rvT5PwQtjCsS5ooU1UgIz28kG2q_MGlJwQbDGadeC.KpBHbDG8qes32_0n9D8KctswBlah3RQ.7zHBz5R_3qJNQRl9jb_fKKC6SgBHqWRHGFOcsRVIMTofR08cb.fBGP20dDtr3OSxBVt2ms5jjFumPKZDn.VecZvJPJC_qriXwbubCTg.lzkBlah4aduC0FqdtgaKWkEg--",
        "oauthTokenSecret": "3e1dblah11528blah6bbffebblah26e48cblahd5",
        "type": "OAuth",
        "oauthSessionHandle": "ANxLPlC_1rSIQpooFHNd_dPauMvBlahBlahBlahCFb5sKuE-"
    }
}

User Profile Data by Provider

Identity providers return user profile data along with session information when a user authenticates successfully. You can use the user profile information to help the user by filling out sign-up or registration forms, as well as to recognize each user and learn more about them in order to give the user a tailored experience.

The Janrain servers return normalized user profile data in standard Portable Contacts (POCO) format. This makes it easier for you to parse and use the profile data without having to learn about each provider’s data format.

Normalized User Profile Data

Janrain Social Login converts the data we receive in one of the diverse data formats returned by the identity providers into a single standard format. We call this process normalization. Programmers save time immediately by learning only one format, and repeatedly by not needing to update their code when new providers are added or providers change their data format.

Personal Data Fields

This section outlines the fields in the normalized profile structure. The Availability column shows whether or not all providers include the field in their profile data responses.

Key Description Availability
address See the address Field section for details. Available from most providers (with user consent).
birthday Date of birth in YYYY-MM-DD format. The Year field value may be 0000 if unavailable. Available from most providers (with user consent).
displayName The name of this contact, suitable for display to end users. Available from most providers (with user consent).
email An email address at which the person may be reached. Available from most providers (with user consent). Not available from LinkedIn, MySpace, or Twitter.
gender The person’s gender. Canonical values are female and male, but it may be any value. Available from most providers (with user consent).
identifier The user’s OpenID URL. Use this value to sign the user in to your website. Guaranteed
limitedData A boolean value. The value is true if Social Login was able to retrieve only limited public data from the user’s profile (for example, because the login session has expired or the user logged out from his/her account). If Janrain Social Login succeeded in retrieving the complete set of data, this field will be missing or set to false. Provided only by Facebook.
name A dictionary of name parts. See the name Field section for details. Available from most providers (with user consent). Yahoo! returns only a full name, not a first name or last name field.
phoneNumber A phone number at which the person may be reached. Available from most providers (with user consent).
photo The URL to a photo (GIF, JPG, or PNG) of the person. Available from most providers (with user consent).
preferredUsername The preferred user name of this contact (for sites that ask for a user name). Available from most providers (with user consent).
primaryKey The primary key of the user in your database. Present only if you are using the mapping API. Guaranteed (if a mapping exists).
providerName A human-readable name of the authentication provider that was used for this authentication. For well-known providers, Janrain sends values such as Google, Facebook, and MySpace (Other is sent for other providers). New provider names are added over time. Guaranteed
URL The URL of a webpage relating to this person. Available from most providers (with user consent).
utcOffset The offset from UTC of this contact’s current time zone, as of the time this response was returned. The value must conform to the offset portion of xs:dateTime (for example, -08:00).
Note: This value may change over time due to daylight savings time, and is thus meant to signify only the current value of the user’s timezone offset.
Available from most providers (with user consent).
verifiedEmail A timestamp. Available from:
  • Facebook
  • Foursquare
  • Google
  • PayPal
  • SalesForce
  • Yahoo!

name Field

The name field holds components of the end user’s real name. Providers may return:

  • The full name as a single string in the formatted sub-field, or
  • The individual component fields (using the other sub-fields), or
  • Both

If a provider returns both variants, the provider should describe the same name, with the formatted name indicating how the component fields should be combined.

Key Description
familyName The family name of this contact (last name in most Western languages).
For example, “Smarr”, full name “Mr. Joseph Robert Smarr, Esq.”.
formatted The full name, including all middle names, titles, and suffixes (as appropriate) formatted for display.
For example, “Mr. Joseph Robert Smarr, Esq.”.
This is the primary sub-field for this field, for the purposes of sorting and filtering.
givenName The given name of this contact (first name in most Western languages).
For example, “Joseph”, full name “Mr. Joseph Robert Smarr, Esq.”.
honorificPrefix The honorific prefix(es) of this contact (title in most Western languages).
For example, “Mr.”, full name “Mr. Joseph Robert Smarr, Esq.”.
honorificSuffix The honorific suffix(es) of this contact (suffix in most Western languages).
For example, “Esq.”, full name “Mr. Joseph Robert Smarr, Esq.”.
middleName The middle name(s) of this contact.
For example, “Robert”, full name “Mr. Joseph Robert Smarr, Esq.”.

address Field

Note: Not all providers return all address data, and the level of specificity of the address is determined by each provider.

Key Description
country The country name component.
formatted The full mailing address, formatted for display or use with a mailing label.
locality The city or locality component.
postalCode Postal code or ZIP code.
region The state or region component.
streetAddress The full street address component which may include house number, street name, PO box, and multi-line extended street address information.

Provider-specific Fields

Some identity providers return fields specific only to them. These fields are present in the provider dictionary keyed by the provider name.

Key Description Provider
active A boolean value where true means the user is active and false means the user is not active. Salesforce
awards Awards received. Xing
bloodType The user’s blood type. Mixi
favoriteThings List of the user’s favorite things, broken down by order (numerical value), type (category), and value (text). Mixi
followersCount How many people follow the user. Instagram
followsCount How many people the user follows. Instagram
friendshipList A list of the user’s friends on the Renren site. This is part of the extended profile data. Renren
haves List of key skills and qualifications. Xing
locale User’s locale. Salesforce
mediaCount How many pictures the user has posted. Instagram
occupation The user’s occupation. Mixi
organisationMember Any clubs, associations, and so on that the user is an active member of, including voluntary work. Xing
photos The photos the user has uploaded to the Renren site. This is part of the extended profile data. Renren
pings Whether Foursquare receives pings from this user, if they have a relationship. Foursquare
positions Collection of positions, each with boolean value isCurrent and name (employer name). Linkedin
qualifications Additional qualifications such as language certificates, diplomas, and so on. Xing
relationship The relationship of the acting user (me) to this user (them). Foursquare
type One of: brand, celebrity, or user. Users can establish their type when following relationships with celebrities. Foursquare
userType The user type. Salesforce
verifiedAccount This is true if the PayPal account has been verified, false if the account is unverified. PayPal
wants What the user is looking for. Xing

Facebook-specific Fields

We describe these fields separately because they have a different structure (each field contains a number of sub-fields or elements).

Key Sub-fields Type Description
albums plural A set of fields describing a photo album saved somewhere on Facebook.
id string The Facebook ID of the album, consisting of a string of numbers.
name string The text name of the album.
privacy string The privacy setting of the album, such as public, friends, or custom.
type string The type of Facebook post that contains the album (or link to the album) such as normal, wall, or profile.
games plural A set of fields describing a game. Can be any sort of game.
name string The text name of the game.
category string A Facebook category, such as interest.
id string The Facebook ID of the game, consisting of a string of numbers.
groups A set of fields describing a Facebook group.
name string The name of the Facebook group.
id string The Facebook ID of the group, consisting of a string of numbers.
videos A set of fields describing a video.
id string The Facebook ID of the video, consisting of a string of numbers.
description string A text string describing the video.
picture url The URL to a thumbnail picture of the video.
icon url The URL to an icon for the video.
embed_html string A block of html code that you can embed on your page to play video on your site.
Example: "embed_html": "",
source url The source for the video.

Provider Guide

The Provider Guide gives a complete list of identity providers and the features supported by each. Providers are added on a regular basis.

get_contacts Overview

The get_contacts endpoint is used to retrieve a list of the user’s contacts, as well as the contacts’ user data.

The get_contacts call uses the apiKey and identifier to return a list of all the contacts related to the user. The data returned and type of relationship differ between identity providers.

Most identity providers return only friends (the exceptions are noted below). These identity providers support this call:

  • Facebook
  • Google
  • LinkedIn
  • Microsoft Account
  • Myspace
  • RenRen
  • Salesforce
  • Sina Weibo
  • Soundcloud
  • Twitter—Supports followers, following, and friendships. Does not support friends.
  • VK—Supports friends, followers, and following. Does not support friendships.
  • Yahoo!

Twitter and get_contacts

You can use get_contacts to retrieve an array of a user’s followers or who the user is following.

Examples

A request for followers looks like this:

curl 'https://rpxnow.com/api/v2/get_contacts?apiKey=&identifier=http://twitter.com/id123456789&contactType=followers'

A request for following looks like this:

curl 'https://rpxnow.com/api/v2/get_contacts?apiKey=&identifier=http://twitter.com/id123456789&contactType=following'

A request for friends looks like this:

curl 'https://rpxnow.com/api/v2/get_contacts?apiKey=&identifier=http://twitter.com/id123456789&contactType=friends'

Note: A request for friends is not supported for Twitter.

VK and get_contacts

You can use get_contacts to retrieve an array of a user’s friends, followers, or whom the user is following.

Example

A request for followers looks like this:

curl -X POST \
-d apiKey=1234abcd1234abcd \
-d identifier=http://vk.com/id123456789 \
-d contactType=followers \
https://rpxnow.com/api/v2/get_contacts

A request for following looks like this:

curl -X POST \
-d apiKey=1234abcd1234abcd \
-d identifier=http://vk.com/id123456789 \
-d contactType=following \
https://rpxnow.com/api/v2/get_contacts

A request for friends looks like this:

curl -X POST \
-d apiKey=1234abcd1234abcd \
-d identifier=http://vk.com/id123456789 \
-d contactType=friends \
https://rpxnow.com/api/v2/get_contacts

Note: A request for friendships is not supported for VK.

Response

The following code sample shows the response to the request for followers. The responses to the other requests have a similar format.

{
  "response": {
    "entry": [
      {
        "photos": [
          {
            "value": "http://cs419026.userapi.com/u123456789/e_12345678.jpg",
            "type": "other"
          },
          {
            "value": "http://cs419026.userapi.com/u123456789/d_12345678.jpg",
            "type": "other"
          },
          {
            "value": "http://cs419026.userapi.com/u123456789/12345678.jpg",
            "type": "other"
          }
        ],
        "interests": [
          "Rock Climbing, Skiing, Shuffleboard"
        ],
        "relationships": [
          {
            "value": "Girlfriend",
            "type": "sweetheart"
          }
        ],
        "name": {
          "formatted": "Vkfriend Rpx-Friend",
          "familyName": "Rpx-Friend",
          "givenName": "Vkfriend"
        },
        "books": [
          "1Q84, Rosemary's Baby"
        ],
        "urls": [
          {
            "value": "http://vk.com/id12345678",
            "type": "profile"
          }
        ],
        "profileUrl": "http://vk.com/id12345678",
        "utcOffset": "-08:00",
        "organizations": [
          {
            "name": "Cleveland High School",
            "type": "school"
          }
        ],
        "phoneNumbers": [
          {
            "value": "503-444-3322",
            "type": "home"
          }
        ],
        "aboutMe": "Just hanging about.",
        "tvShows": [
          "Mad Men, Flight of the Concords"
        ],
        "id": "http://vk.com/id12345678",
        "relationshipStatus": "In love",
        "movies": [
          "Dr. Strangeglove, The Expendables.",
          "I also prefer mini series television, which is a lot like movies."
        ],
        "birthday": "1979-05-09",
        "displayName": "Vkfriend Rpx-Friend",
        "gender": "female"
      },
      {
        "photos": [
        {
          "value": "https://vk.com/images/12345678.gif",
          "type": "other"
        },
        {
          "value": "https://vk.com/images/12345678.gif",
          "type": "other"
        },
        {
          "value": "https://vk.com/images/12345678.gif",
          "type": "other"
        }
      ],
      "status" : "whoo! status!",
      "name": {
        "formatted": "Vkfriend Rpx-Friend",
        "familyName": "Rpx-Friend",
        "givenName": "Vkfriend"
      },
      "urls": [
        {
          "value": "http://vk.com/id12345678",
          "type": "profile"
        }
      ],
      "profileUrl": "http://vk.com/id184591843",
      "utcOffset": "-08:00",
      "organizations": [
        {
          "name": "Cleveland High School",
          "type": "school"
        }
      ],
      "id": "http://vk.com/id184591843",
      "displayName": "Vkfriend Rpx-Friend",
      "gender": "female"
    },
    {
      "photos": [
        {
          "value": "http://example.com/u12345678/12345678.jpg",
          "type": "other"
        },
        {
          "value": "http://example.com/u12345678/12345678.jpg",
          "type": "other"
        },
        {
          "value": "http://example.com/u12345678/12345678.jpg",
          "type": "other"
        }
      ],
      "interests": [
        "Monkey juggling"
      ],
      "status": "Good.",
      "name": {
        "formatted": "Mr. Example",
        "familyName": "Example",
        "givenName" : "Mr."
      },
      "urls": [
        {
          "value": "http://vk.com/id12345678",
          "type": "profile"
        }
      ],
      "profileUrl": "http://vk.com/id12345678",
      "utcOffset": "-08:00",
      "organizations": [
        {
          "department": "Acupuncture",
          "endDate": "1976",
          "name": "Medical School",
          "type": "school"
        },
        {
          "name": "High School",
          "type": "school"
        }
      ],
      "phoneNumbers": [
        {
          "value": "555 555 5556",
          "type": "home"
        },
        {
          "value": "555 555 5555",
          "type": "mobile"
        }
      ],
      "preferredUsername": "Example",
      "tvShows": [
        "Mash",
        "Mr Fink",
        "Sploosh",
        "Ploosh",
        "Smoosh"
      ],
      "id": "http://vk.com/id123456789",
      "movies": [
        "Movie"
      ],
      "birthday": "0000-01-01",
      "displayName": "Mr. Example",
      "gender": "male"
    }
  ],
  "startIndex": 1,
  "itemsPerPage": 3,
  "totalResults": 3
  },
  "stat": "ok"
}
Scroll ↓