2013-05-10 2 views
64

Ich möchte einen Benutzer von seinen/ihren Facebook-Anmeldeinformationen erstellen, ohne undokumentierte Aufrufe zu verwenden. Ich glaube nicht, dass es möglich ist, basierend auf der aktuellen Implementierung von Parse Javascript Library aus zwei bekannten Gründen:Wie integrierst du die Parse Javascript API mit Appcelerator und verwendest keine undokumentierten Aufrufe?

1. Die aktuelle Implementierung der Bibliothek unterstützt den Appcelerator HTTP-Client nicht, so dass es sofort fehlschlägt. Ich habe dieses Problem behoben, indem ich die bestehende Ajax-Methode der Parse-Javascript-Bibliothek erweitert habe, um die Appcelerator HTTP client zu verwenden.

http://www.clearlyinnovative.com/blog/post/34758524107/parse-appcelerator-titanium-the-easy-way

Es hat etwa 2K Ansichten auf der Folie Deck, die ich erstellt und über das gleiche auf der Blog-Post, so ist es ziemlich klar, mir Menschen diese arbeiten wollen.

2. Die aktuelle Implementierung der Bibliothek geht davon aus, dass Sie mit der Facebook Javascript-Bibliothek integrieren und diese Bibliothek auch nicht mit Appcelerator funktioniert. Tatsächlich hat Appcelerator Facebook direkt in das Framework integriert, so dass die JavaScript-Bibliothek nicht benötigt wird. Alle Informationen, die erforderlich sind, um ein Benutzerkonto mit Facebook zu verknüpfen, können leicht mit den API-Aufrufen abgerufen werden, mit denen die Appcelerator-Entwickler bereits vertraut sind.

Die ursprüngliche Frage wurde aus dem Parse Support-Forum entfernt, also suche ich nach einer Lösung aus einer größeren Gemeinschaft.

Hallo Aaron,

es andere Entwickler nicht hilfreich ist mit undokumentierte APIs in der Parse-Bibliothek als Abhilfe zu fördern, so dass ich die Entscheidung zu fehlenden oder es. Ich verstehe, dass es in Ihrem speziellen Fall mit Titanium helfen kann, und Sie sind sich der Auswirkungen der Verwendung von privaten APIs bewusst, aber andere Benutzer übersehen möglicherweise diese Warnung. Ich hoffe du verstehst .

Héctor Ramos Lösungen Architekt, Parse https://parse.com/help

Dies ist der Code, die zu gefährlich war auf dem Forum werden sichtbar links:

// 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)); 
}); 

Frage zum Appcelerator Forum

http://developer.appcelerator.com/question/152146/facebook-appcelerator-and-parse-integration-need-help

Frage zu Parse Forum

https://parse.com/questions/how-do-you-integrate-the-parse-javascript-api-with-appcelerator-and-not-use-undocumented-calls

+0

Was ist dein Problem? Es scheint, dass Sie alle Fragen beantwortet oder bearbeitet haben. –

+0

es wird unterstützt und kann jederzeit mit einem Update auf die Bibliothek parse.js –

+0

per E-Mail ihre exec Mitarbeiter geändert werden? Es sieht so aus, als ob sie sich ändern, welche APIs offiziell veröffentlicht werden und einen Weg dafür geben, dass dies funktioniert. Sie stecken fest ohne eine "Antwort". –

Antwort

3

Vielleicht Teil eines neueren SDK, kann aber nicht einfach anrufen:

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) {} 
    } 
}; 

Es ist nicht in dem Javascript Guide dokumentiert, aber es ist in der unminified Version der dokumentierten Code 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. 

ich habe einige Updates zu Ihrem ursprünglichen Code, um das neueste SDK zu unterstützen, die ich auf Github veröffentlichen werde.

Vielen Dank für die Speerspitze dieser Bemühungen. Dein ursprünglicher Post hat mir Stunden gespart.

Verwandte Themen