{"_id":"56c419814f0aed1700afaba6","__v":11,"parentDoc":null,"category":{"_id":"56c4181cc4796b0d007ef039","version":"56bc8e689afb8b0d00d62dd2","__v":26,"project":"56bc8e679afb8b0d00d62dcf","pages":["56c4192dbc41330d009f25fd","56c4196434df460d00c2bece","56c419814f0aed1700afaba6","56c4198dbc41330d009f25ff","56c419962e75e01700986053","56c4199f54b6030d00ec29a4","56c419a8bb64720d00552b8b","56c419b1bb64720d00552b8d","56c419b92d97560d00e23cf9","56c419c64040602b0064cea3","56c419d4bc41330d009f2601","56c419de70187b17005f43b9","56c419ea6063071700500cfe","56c419fa54b6030d00ec29a6","56c41a096063071700500d00","56c41a1834df460d00c2bed0","56c41a773d30210d00ea8517","56c41a86c4796b0d007ef03e","56c41a904f0aed1700afaba8","56c41a9fbc41330d009f2603","56c41aaa521f350d00d348fe","56c41abb4040602b0064cea5","56c41ad24040602b0064cea7","56c41ade48213b1700af6e28","56c41aeb3d30210d00ea8519","56c41af948213b1700af6e2a"],"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2016-02-17T06:50:04.339Z","from_sync":false,"order":2,"slug":"users","title":"Users"},"user":"56b98db7bb36440d0001f492","project":"56bc8e679afb8b0d00d62dcf","version":{"_id":"56bc8e689afb8b0d00d62dd2","project":"56bc8e679afb8b0d00d62dcf","__v":18,"createdAt":"2016-02-11T13:36:40.146Z","releaseDate":"2016-02-11T13:36:40.146Z","categories":["56bc8e689afb8b0d00d62dd3","56c3c837bc41330d009f25ed","56c3c83e521f350d00d348eb","56c3c8452d97560d00e23cd8","56c3c85234df460d00c2beb8","56c4180d70187b17005f43b4","56c418162d97560d00e23cf6","56c4181cc4796b0d007ef039","56c4182370187b17005f43b5","56c418292e75e01700986052","56c4183328bd680d005e7ac6","56c4183bbb64720d00552b88","56c418414040602b0064cea0","56c4184754b6030d00ec29a1","56c4184c28bd680d005e7ac7","56c4185370187b17005f43b6","56c4185b6063071700500cfc","582a98b6f8c0a0190053d7a5"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-02-17T06:56:01.395Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"[block:api-header]\n{\n  \"type\": \"post\",\n  \"title\": \"/users/login/social\"\n}\n[/block]\nLogs a user in using authentication credentials from a social media platform, creating the user in the process if they haven't already been created within Buddy. \n\nThe providers currently supported by Buddy are:\n* Facebook \n* Microsoft Live\n\nTo use social login with your Buddy app:\n\n1. Invoke the provider's login UI and retrieve the provider-specific token (`identityAccessToken`)\n2. Pass that token, along with the providers unique user identifier to Buddy.  For example, if the identityProviderName was `Facebook`, then you would pass the users Facebook ID (FBID).\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Buddy.socialLogin(\\\"identityProviderName\\\", \\\"identityID\\\", \\\"identityAccessToken\\\",\\n\\t\\tfunction(err, result) {\\n\\t\\t\\t \\n\\t\\t\\tif (result.success) {\\n\\t\\t\\t\\t// Do something with the result!\\n\\t\\t\\t} else { \\n\\t\\t\\t\\t// Otherwise log the error\\n\\t\\t\\t\\tconsole.log(err); \\n\\t\\t\\t} \\n\\t\\t}\\n\\t);\",\n      \"language\": \"javascript\"\n    },\n    {\n      \"code\": \"[Buddy SocialLogin::::at:::\\\"providerName\\\" providerId:@\\\"providerId\\\" token:@\\\"token\\\" success:^(id obj, NSError *error) {\\n\\t// Your callback code here\\n}];\",\n      \"language\": \"objectivec\",\n      \"name\": \"iOS\"\n    },\n    {\n      \"code\": \"Buddy.socialLogin(\\\"identityProviderName\\\", \\\"identityId\\\", \\\"identityAccessToken\\\", new BuddyCallback<User>(User.class) {\\n\\[email protected]\\n\\tpublic void completed(BuddyResult<User> result) {\\n\\t\\t// Your callback code here\\n\\t}\\n});\",\n      \"language\": \"java\",\n      \"name\": \"Android\"\n    },\n    {\n      \"code\": \"var result = await Buddy.SocialLoginUserAsync(identityProviderName, identityId, identityAccessToken);\",\n      \"language\": \"csharp\",\n      \"name\": \".NET\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n###Body Parameters\n\nThese parameters should be specified as part of the request body.\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"identityProviderName\",\n    \"1-0\": \"identityID\",\n    \"2-0\": \"identityAccessToken\",\n    \"0-1\": \"The name of the social media login provider to be used. Current valid values are \\\"Facebook\\\" and \\\"LiveConnect\\\" (Microsoft Live).\",\n    \"1-1\": \"The user's ID from the social media provider.\",\n    \"2-1\": \"The access token from the provider associated with the identityID.\",\n    \"0-2\": \"string\",\n    \"1-2\": \"string\",\n    \"2-2\": \"string\",\n    \"0-3\": \"Required\",\n    \"1-3\": \"Required\",\n    \"2-3\": \"Required\"\n  },\n  \"cols\": 4,\n  \"rows\": 3\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    \\\"status\\\": 200,\\n    \\\"result\\\": {\\n        \\\"isNew\\\": true,\\n        \\\"accessToken\\\": \\\"[access token>]\\\",\\n        \\\"accessTokenExpires\\\": \\\"/Date(1423093738113)/\\\",\\n        \\\"firstName\\\": \\\"Dan\\\",\\n        \\\"lastName\\\": \\\"Row\\\",\\n        \\\"lastLogin\\\": \\\"/Date(1391557738620)/\\\",\\n        \\\"userName\\\": \\\"drow1\\\",\\n        \\\"id\\\": \\\"bv.tshbbGtwMtfh\\\",\\n        \\\"created\\\": \\\"/Date(1391557738477)/\\\",\\n        \\\"lastModified\\\": \\\"/Date(1391557738620)/\\\"\\n    },\\n    \\\"request_id\\\": \\\"1ee1d07e-2b35-4713-b1fd-123d78e70656\\\",\\n    \\\"success\\\": true\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]","excerpt":"","slug":"social-login-create-user","type":"basic","title":"Social Login & Create User"}

Social Login & Create User


[block:api-header] { "type": "post", "title": "/users/login/social" } [/block] Logs a user in using authentication credentials from a social media platform, creating the user in the process if they haven't already been created within Buddy. The providers currently supported by Buddy are: * Facebook * Microsoft Live To use social login with your Buddy app: 1. Invoke the provider's login UI and retrieve the provider-specific token (`identityAccessToken`) 2. Pass that token, along with the providers unique user identifier to Buddy. For example, if the identityProviderName was `Facebook`, then you would pass the users Facebook ID (FBID). [block:code] { "codes": [ { "code": "Buddy.socialLogin(\"identityProviderName\", \"identityID\", \"identityAccessToken\",\n\t\tfunction(err, result) {\n\t\t\t \n\t\t\tif (result.success) {\n\t\t\t\t// Do something with the result!\n\t\t\t} else { \n\t\t\t\t// Otherwise log the error\n\t\t\t\tconsole.log(err); \n\t\t\t} \n\t\t}\n\t);", "language": "javascript" }, { "code": "[Buddy SocialLogin:@\"providerName\" providerId:@\"providerId\" token:@\"token\" success:^(id obj, NSError *error) {\n\t// Your callback code here\n}];", "language": "objectivec", "name": "iOS" }, { "code": "Buddy.socialLogin(\"identityProviderName\", \"identityId\", \"identityAccessToken\", new BuddyCallback<User>(User.class) {\n\[email protected]\n\tpublic void completed(BuddyResult<User> result) {\n\t\t// Your callback code here\n\t}\n});", "language": "java", "name": "Android" }, { "code": "var result = await Buddy.SocialLoginUserAsync(identityProviderName, identityId, identityAccessToken);", "language": "csharp", "name": ".NET" } ], "sidebar": true } [/block] ###Body Parameters These parameters should be specified as part of the request body. [block:parameters] { "data": { "0-0": "identityProviderName", "1-0": "identityID", "2-0": "identityAccessToken", "0-1": "The name of the social media login provider to be used. Current valid values are \"Facebook\" and \"LiveConnect\" (Microsoft Live).", "1-1": "The user's ID from the social media provider.", "2-1": "The access token from the provider associated with the identityID.", "0-2": "string", "1-2": "string", "2-2": "string", "0-3": "Required", "1-3": "Required", "2-3": "Required" }, "cols": 4, "rows": 3 } [/block] [block:code] { "codes": [ { "code": "{\n \"status\": 200,\n \"result\": {\n \"isNew\": true,\n \"accessToken\": \"[access token>]\",\n \"accessTokenExpires\": \"/Date(1423093738113)/\",\n \"firstName\": \"Dan\",\n \"lastName\": \"Row\",\n \"lastLogin\": \"/Date(1391557738620)/\",\n \"userName\": \"drow1\",\n \"id\": \"bv.tshbbGtwMtfh\",\n \"created\": \"/Date(1391557738477)/\",\n \"lastModified\": \"/Date(1391557738620)/\"\n },\n \"request_id\": \"1ee1d07e-2b35-4713-b1fd-123d78e70656\",\n \"success\": true\n}", "language": "json", "name": "Response" } ], "sidebar": true } [/block]