Я хотел бы создать пользователя из своих учетных данных Facebook без использования недокументированных вызовов. Я не думаю, что это возможно на основе текущей реализации Parse Javascript Library по двум известным причинам:
1. Текущая реализация библиотеки не поддерживает HTTP-клиент Appcelerator, поэтому он немедленно сбой. Я рассмотрел эту проблему, расширив существующий метод ajax библиотеки Parse Javascript, чтобы использовать Appcelerator HTTP client
.
http://www.clearlyinnovative.com/blog/post/34758524107/parse-appcelerator-titanium-the-easy-way
На слайд-панели, которую я создал, было примерно 2 тыс. просмотров, и примерно то же самое в блоге, поэтому мне очень ясно, что люди хотят, чтобы это работало.
2. Текущая реализация библиотеки предполагает, что вы интегрируетесь с библиотекой Javascript Facebook, и эта библиотека также не работает с Appcelerator. Фактически, Appcelerator интегрировал Facebook непосредственно в структуру, поэтому нет необходимости в библиотеке javascript. Вся информация, необходимая для привязки учетной записи пользователя к Facebook, может быть легко получена с помощью вызовов API, которые уже знакомы разработчикам Appcelerator.
Оригинальный вопрос был удален с форума поддержки Parse, поэтому я ищу решение из более широкого сообщества.
Привет Аарон,
Не рекомендуется другим разработчикам продвигать использование недокументированных API в библиотеке Parse в качестве обходного пути, поэтому я принимаю решение заблокировать его. Я понимаю, что это может помочь в вашем конкретном случае с Титан, и вы хорошо осведомлены о последствиях использования частных API, но другие пользователи могут игнорировать это предупреждение. Надеюсь, вы понять.
Héctor Ramos Solutions Architect, Parse https://parse.com/help
Это код, который был слишком опасен, чтобы быть видимым на форуме:
// 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));
});
Вопрос о форуме-посреднике
Вопрос о форуме по парку