我想从他/她的Facebook凭据创建一个用户,而不使用未记录的调用。我不认为有可能基于两个已知原因基于当前的Parse Javascript Library实现:
1. 该库的当前实现不支持Appcelerator HTTP客户端,因此它立即失败。我通过扩展现有的Parse Javascript库的ajax方法来利用Appcelerator HTTP client
来解决此问题。
http://www.clearlyinnovative.com/blog/post/34758524107/parse-appcelerator-titanium-the-easy-way
我创建的幻灯片上大约有2K的 View ,而博客文章中的 View 也差不多,所以对我来说很明显,人们希望它能起作用。
2. 该库的当前实现假定您正在与Facebook Javascript库集成,并且该库也不适用于Appcelerator。实际上,Appcelerator已将Facebook直接集成到框架中,因此不需要javascript库。可以使用Appcelerator开发人员已经熟悉的API调用轻松获得将用户帐户链接到Facebook所需的所有信息。
最初的问题已从“解析支持”论坛中删除,因此我正在寻找更广泛社区的解决方案。
这是太危险而无法在论坛上看到的代码:
// setting auth data retrieved from Ti.Facebook login
authData = {
"facebook" : {
"id" : Ti.Facebook.uid,
"access_token" : Ti.Facebook.accessToken,
"expiration_date" : expDate, // "format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
}
};
// Either way I resolved the problem, calling _handleSaveResult(true) on the returned user object,
// I just dont think it should have been as difficult as it was
// attempt to log the user in using the FB information
var user = new Parse.User();
user.save({
"authData" : authData
}).then(function(_user) {
// force the user to become current
_user._handleSaveResult(true); //<-- this is the evil method I called
if (!_user.existed()) {
// add additional user information
var userInfo = {
"acct_email" : "[email protected]",
"acct_fname" : "Bryce",
"acct_lname" : "Saunders"
};
return _user.save(userInfo);
}
}).then(function(_user) {
alert('Hooray! Let them use the app now.');
}, function(error) {
alert(' ERROR: ' + JSON.stringify(error, null, 2));
});
关于加速器论坛的问题
http://developer.appcelerator.com/question/152146/facebook-appcelerator-and-parse-integration-need-help
解析论坛上的问题
https://parse.com/questions/how-do-you-integrate-the-parse-javascript-api-with-appcelerator-and-not-use-undocumented-calls
最佳答案
也许这是更新版SDK的一部分,但您不能只调用:
Parse.FacebookUtils.logIn({
"facebook": {
"id": "user's Facebook id number as a string",
"access_token": "an authorized Facebook access token for the user",
"expiration_date": "token expiration date of the format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
},
{
success : function(_user) {},
error : function(_user, error) {}
}
};
它未在Javascript指南中进行记录,但在未简化的代码Visa vie版本中进行了记录:
@param {String, Object} permissions The permissions required for Facebook
log in. This is a comma-separated string of permissions.
Alternatively, supply a Facebook authData object as described in our
REST API docs if you want to handle getting facebook auth tokens
yourself.
我对您的原始代码进行了一些更新,以支持我将在Github上发布的最新SDK。
非常感谢您为此付出的努力。您的原始帖子为我节省了时间。
关于javascript - 如何将Parse Javascript API与Appcelerator集成在一起,而不使用未记录的调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16481751/