1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00
rocketchat_ynh/sources/programs/server/packages/twitter.js
2016-04-29 16:32:48 +02:00

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