我想从他/她的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/

10-12 03:44