文書化されていない通話を使用せずに、Facebookの資格情報からユーザーを作成したいと思います。次の2つの既知の理由により、Parse JavascriptLibraryの現在の実装に基づいてそれが可能であるとは思いません。
1。ライブラリの現在の実装は、Appcelerator HTTPクライアントをサポートしていないため、すぐに失敗します。 Appcelerator HTTP client
を利用するように既存のParseJavascriptライブラリのajaxメソッドを拡張することで、この問題に対処しました。
http://www.clearlyinnovative.com/blog/post/34758524107/parse-appcelerator-titanium-the-easy-way
私が作成したスライドデッキには約2Kのビューがあり、ブログ投稿にもほぼ同じビューがあるので、人々がこれを機能させたいと思っていることは明らかです。
2。ライブラリの現在の実装は、Facebook Javascriptライブラリと統合しており、そのライブラリがAppceleratorでも機能しないことを前提としています。実際、AppceleratorはFacebookをフレームワークに直接統合しているため、javascriptライブラリは必要ありません。ユーザーアカウントをFacebookにリンクするために必要なすべての情報は、Appcelerator開発者がすでに精通しているAPI呼び出しを使用して簡単に取得できます。
元の質問は解析サポートフォーラムから削除されたので、より広いコミュニティからの解決策を探しています。
こんにちはアーロン、
回避策としてParseライブラリで文書化されていないAPIの使用を促進することは他の開発者にとって役に立たないので、私はそれをリストから外すことに決めました。 Titaniumの特定のケースで役立つ可能性があることを理解しています。また、プライベートAPIを使用することの影響についてはよく知っていますが、他のユーザーはその警告を見落としている可能性があります。御理解いただけることを願います。
HéctorRamosソリューションアーキテクト、解析 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));
});
Appceleratorフォーラムに関する質問
解析フォーラムに関する質問
新しい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ガイドには記載されていませんが、コードビザの非縮小バージョンに記載されています。
@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をサポートするために、元のコードにいくつかの更新を加えました。
この取り組みを主導してくれてありがとう。あなたの元の投稿は私に時間を節約しました。