PageRenderTime 58ms CodeModel.GetById 33ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/twitter/index.php

https://github.com/whale2/users
PHP | 95 lines | 81 code | 12 blank | 2 comment | 6 complexity | 3b40a7e94acc2d07e68c106670b36b89 MD5 | raw file
  1. <?php
  2. require_once(dirname(dirname(dirname(__FILE__))).'/OAuthModule.php');
  3. class TwitterAuthenticationModule extends OAuthAuthenticationModule
  4. {
  5. protected $userCredentialsClass = 'TwitterUserCredentials';
  6. public function __construct($oAuthConsumerKey, $oAuthConsumerSecret)
  7. {
  8. parent::__construct(
  9. 'Twitter',
  10. 'http://api.twitter.com',
  11. $oAuthConsumerKey,
  12. $oAuthConsumerSecret,
  13. 'https://api.twitter.com/oauth/request_token',
  14. 'https://api.twitter.com/oauth/access_token',
  15. 'https://api.twitter.com/oauth/authenticate',
  16. array('HMAC-SHA1'),
  17. 'http://api.twitter.com',
  18. UserConfig::$USERSROOTURL.'/modules/twitter/login-button.png',
  19. UserConfig::$USERSROOTURL.'/modules/twitter/login-button.png',
  20. UserConfig::$USERSROOTURL.'/modules/twitter/login-button.png',
  21. array(
  22. array(4001, "Logged in using Twitter account", 1),
  23. array(4002, "Added Twitter account", 1),
  24. array(4003, "Removed Twitter account", 0),
  25. array(4004, "Registered using Twitter account", 1),
  26. )
  27. );
  28. }
  29. public function getID()
  30. {
  31. return "twitter";
  32. }
  33. public function getLegendColor()
  34. {
  35. return "60bddc";
  36. }
  37. public function getTitle()
  38. {
  39. return "Twitter";
  40. }
  41. public function getIdentity($oauth_user_id) {
  42. // get twitter handle
  43. #$request = new OAuthRequester('http://api.twitter.com/1/account/verify_credentials.xml', 'GET');
  44. $request = new OAuthRequester('http://api.twitter.com/1/account/verify_credentials.json', 'GET');
  45. $result = $request->doRequest($oauth_user_id);
  46. if ($result['code'] == 200) {
  47. $data = json_decode($result['body'], true);
  48. if (is_null($data)) {
  49. switch(json_last_error())
  50. {
  51. case JSON_ERROR_DEPTH:
  52. error_log('JSON Error: Maximum stack depth exceeded');
  53. break;
  54. case JSON_ERROR_CTRL_CHAR:
  55. error_log('JSON Error: Unexpected control character found');
  56. break;
  57. case JSON_ERROR_SYNTAX:
  58. error_log('JSON Error: Syntax error, malformed JSON');
  59. break;
  60. case JSON_ERROR_NONE:
  61. error_log('JSON Error: No errors');
  62. break;
  63. }
  64. return null;
  65. }
  66. if (!is_null($data) && array_key_exists('id', $data) && array_key_exists('name', $data)) {
  67. return $data;
  68. }
  69. }
  70. return null;
  71. }
  72. protected function renderUserInfo($serialized_userinfo) {
  73. $user_info = unserialize($serialized_userinfo);
  74. ?><a href="http://twitter.com/<?php echo UserTools::escape($user_info['screen_name']); ?>" target="_blank">@<?php echo UserTools::escape($user_info['screen_name']); ?></a><br/>
  75. <a href="http://twitter.com/<?php echo UserTools::escape($user_info['screen_name']); ?>" target="_blank"><img src="<?php echo UserTools::escape($user_info['profile_image_url']); ?>" title="<?php echo UserTools::escape($user_info['name']); ?> (@<?php echo UserTools::escape($user_info['screen_name']); ?>)" style="max-width: 60px; max-height: 60px"/></a>
  76. <?php
  77. }
  78. }
  79. class TwitterUserCredentials extends OAuthUserCredentials {
  80. public function getHTML() {
  81. return '<a href="http://twitter.com/'.UserTools::escape($this->userinfo['screen_name']).'" target="_blank">@'.$this->userinfo['screen_name'].'</a>';
  82. }
  83. }