mirror of
https://github.com/YunoHost-Apps/rocketchat_ynh.git
synced 2024-09-03 20:16:25 +02:00
79 lines
5.8 KiB
JavaScript
79 lines
5.8 KiB
JavaScript
(function () {
|
|
|
|
/* Imports */
|
|
var Meteor = Package.meteor.Meteor;
|
|
var HTTP = Package.http.HTTP;
|
|
var HTTPInternals = Package.http.HTTPInternals;
|
|
var OAuth1Binding = Package.oauth1.OAuth1Binding;
|
|
var OAuth = Package.oauth.OAuth;
|
|
var Oauth = Package.oauth.Oauth;
|
|
var _ = Package.underscore._;
|
|
var ServiceConfiguration = Package['service-configuration'].ServiceConfiguration;
|
|
|
|
/* Package-scope variables */
|
|
var Twitter;
|
|
|
|
(function(){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/twitter/twitter_server.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
Twitter = {}; // 1
|
|
// 2
|
|
var urls = { // 3
|
|
requestToken: "https://api.twitter.com/oauth/request_token", // 4
|
|
authorize: "https://api.twitter.com/oauth/authorize", // 5
|
|
accessToken: "https://api.twitter.com/oauth/access_token", // 6
|
|
authenticate: "https://api.twitter.com/oauth/authenticate" // 7
|
|
}; // 8
|
|
// 9
|
|
// 10
|
|
// https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials // 11
|
|
Twitter.whitelistedFields = ['profile_image_url', 'profile_image_url_https', 'lang']; // 12
|
|
// 13
|
|
OAuth.registerService('twitter', 1, urls, function(oauthBinding) { // 14
|
|
var identity = oauthBinding.get('https://api.twitter.com/1.1/account/verify_credentials.json').data;
|
|
// 16
|
|
var serviceData = { // 17
|
|
id: identity.id_str, // 18
|
|
screenName: identity.screen_name, // 19
|
|
accessToken: OAuth.sealSecret(oauthBinding.accessToken), // 20
|
|
accessTokenSecret: OAuth.sealSecret(oauthBinding.accessTokenSecret) // 21
|
|
}; // 22
|
|
// 23
|
|
// include helpful fields from twitter // 24
|
|
var fields = _.pick(identity, Twitter.whitelistedFields); // 25
|
|
_.extend(serviceData, fields); // 26
|
|
// 27
|
|
return { // 28
|
|
serviceData: serviceData, // 29
|
|
options: { // 30
|
|
profile: { // 31
|
|
name: identity.name // 32
|
|
} // 33
|
|
} // 34
|
|
}; // 35
|
|
}); // 36
|
|
// 37
|
|
// 38
|
|
Twitter.retrieveCredential = function(credentialToken, credentialSecret) { // 39
|
|
return OAuth.retrieveCredential(credentialToken, credentialSecret); // 40
|
|
}; // 41
|
|
// 42
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}).call(this);
|
|
|
|
|
|
/* Exports */
|
|
if (typeof Package === 'undefined') Package = {};
|
|
Package.twitter = {
|
|
Twitter: Twitter
|
|
};
|
|
|
|
})();
|
|
|
|
//# sourceMappingURL=twitter.js.map
|