PageRenderTime 54ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/inc/socialmedia.php

https://bitbucket.org/ryanhowdy/family-connections
PHP | 453 lines | 296 code | 66 blank | 91 comment | 36 complexity | 06bf47587cb0c631082cb1cee9b906c0 MD5 | raw file
Possible License(s): Apache-2.0, GPL-2.0
  1. <?php
  2. /**
  3. * getFacebookConfigData
  4. *
  5. * Will return an array of the facebook app id and app secret.
  6. *
  7. * @return array
  8. */
  9. function getFacebookConfigData ()
  10. {
  11. $sql = "SELECT `name`, `value`
  12. FROM `fcms_config`
  13. WHERE `name` = 'fb_app_id'
  14. OR `name` = 'fb_secret'";
  15. $result = mysql_query($sql);
  16. if (!$result)
  17. {
  18. displaySqlError($sql, mysql_error());
  19. return false;
  20. }
  21. if (mysql_num_rows($result) <= 0)
  22. {
  23. return false;
  24. }
  25. $row = array();
  26. while ($r = mysql_fetch_assoc($result))
  27. {
  28. $row[$r['name']] = $r['value'];
  29. }
  30. return $row;
  31. }
  32. /**
  33. * getUserFacebookAccessToken
  34. *
  35. * Returns the user's saved access token from the db. Or null if they don't have one.
  36. *
  37. * @param int $user
  38. *
  39. * @return string
  40. */
  41. function getUserFacebookAccessToken ($user)
  42. {
  43. $sql = "SELECT `fb_access_token`
  44. FROM `fcms_user_settings`
  45. WHERE `user` = '$user'
  46. LIMIT 1";
  47. $result = mysql_query($sql);
  48. if (!$result)
  49. {
  50. displaySqlError($sql, mysql_error());
  51. return;
  52. }
  53. if (mysql_num_rows($result) <= 0)
  54. {
  55. return;
  56. }
  57. $r = mysql_fetch_assoc($result);
  58. return $r['fb_access_token'];
  59. }
  60. /**
  61. * getVimeoConfigData
  62. *
  63. * Will return an array of the vimeo consumer key and secret.
  64. *
  65. * @return array
  66. */
  67. function getVimeoConfigData ()
  68. {
  69. $sql = "SELECT `name`, `value`
  70. FROM `fcms_config`
  71. WHERE `name` = 'vimeo_key'
  72. OR `name` = 'vimeo_secret'";
  73. $result = mysql_query($sql);
  74. if (!$result)
  75. {
  76. displaySqlError($sql, mysql_error());
  77. return false;
  78. }
  79. if (mysql_num_rows($result) <= 0)
  80. {
  81. return false;
  82. }
  83. $row = array();
  84. while ($r = mysql_fetch_assoc($result))
  85. {
  86. $row[$r['name']] = $r['value'];
  87. }
  88. return $row;
  89. }
  90. /**
  91. * getVimeoUserData
  92. *
  93. * @param int $user
  94. *
  95. * @return void
  96. */
  97. function getVimeoUserData ($user)
  98. {
  99. $sql = "SELECT `vimeo_access_token`, `vimeo_access_token_secret`
  100. FROM `fcms_user_settings`
  101. WHERE `user` = '$user'
  102. LIMIT 1";
  103. $result = mysql_query($sql);
  104. if (!$result)
  105. {
  106. displaySqlError($sql, mysql_error());
  107. return;
  108. }
  109. if (mysql_num_rows($result) <= 0)
  110. {
  111. return;
  112. }
  113. $r = mysql_fetch_assoc($result);
  114. return $r;
  115. }
  116. /**
  117. * getFoursquareConfigData
  118. *
  119. * @return void
  120. */
  121. function getFoursquareConfigData ()
  122. {
  123. $sql = "SELECT `name`, `value`
  124. FROM `fcms_config`
  125. WHERE `name` = 'fs_client_id'
  126. OR `name` = 'fs_client_secret'
  127. OR `name` = 'fs_callback_url'";
  128. $result = mysql_query($sql);
  129. if (!$result)
  130. {
  131. displaySqlError($sql, mysql_error());
  132. return;
  133. }
  134. if (mysql_num_rows($result) <= 0)
  135. {
  136. return;
  137. }
  138. $row = array();
  139. while ($r = mysql_fetch_assoc($result))
  140. {
  141. $row[$r['name']] = $r['value'];
  142. }
  143. return $row;
  144. }
  145. /**
  146. * getFoursquareUserData
  147. *
  148. * @param int $user
  149. *
  150. * @return void
  151. */
  152. function getFoursquareUserData ($user)
  153. {
  154. $sql = "SELECT `fs_user_id`, `fs_access_token`
  155. FROM `fcms_user_settings`
  156. WHERE `user` = '$user'
  157. LIMIT 1";
  158. $result = mysql_query($sql);
  159. if (!$result)
  160. {
  161. displaySqlError($sql, mysql_error());
  162. return;
  163. }
  164. if (mysql_num_rows($result) <= 0)
  165. {
  166. return;
  167. }
  168. $r = mysql_fetch_assoc($result);
  169. return $r;
  170. }
  171. /**
  172. * getFoursquareUsersData
  173. *
  174. * Returns an array of arrays containing the users with foursquare setup.
  175. *
  176. * Array
  177. * (
  178. * [0] => Array
  179. * (
  180. * [user_id] => 9999
  181. * [access_token] => ABC123
  182. * )
  183. *
  184. * )
  185. *
  186. * @return array
  187. */
  188. function getFoursquareUsersData ()
  189. {
  190. $sql = "SELECT `user` AS 'userid', `fs_user_id`, `fs_access_token`, `fname`, `lname`,
  191. `avatar`, `gravatar`, `timezone`
  192. FROM `fcms_user_settings` AS s, `fcms_users` AS u
  193. WHERE `fs_user_id` IS NOT NULL
  194. AND s.`user` = u.`id`";
  195. $result = mysql_query($sql);
  196. if (!$result)
  197. {
  198. displaySqlError($sql, mysql_error());
  199. return;
  200. }
  201. if (mysql_num_rows($result) <= 0)
  202. {
  203. $users[0] = array();
  204. return $users;
  205. }
  206. $i = 0;
  207. while($row = mysql_fetch_assoc($result))
  208. {
  209. $users[$i] = array(
  210. 'fcms_user_id' => $row['userid'],
  211. 'user_id' => $row['fs_user_id'],
  212. 'access_token' => $row['fs_access_token'],
  213. 'name' => $row['fname'].' '.$row['lname'],
  214. 'avatar' => $row['avatar'],
  215. 'gravatar' => $row['gravatar'],
  216. 'timezone' => $row['timezone'],
  217. );
  218. $i++;
  219. }
  220. return $users;
  221. }
  222. /**
  223. * getYouTubeConfigData
  224. *
  225. * @return void
  226. */
  227. function getYouTubeConfigData ()
  228. {
  229. if (isset($_SESSION['youtube_key']) && !empty($_SESSION['youtube_key']))
  230. {
  231. return array('youtube_key' => $_SESSION['youtube_key']);
  232. }
  233. $sql = "SELECT `name`, `value`
  234. FROM `fcms_config`
  235. WHERE `name` = 'youtube_key'";
  236. $result = mysql_query($sql);
  237. if (!$result)
  238. {
  239. displaySqlError($sql, mysql_error());
  240. return;
  241. }
  242. if (mysql_num_rows($result) <= 0)
  243. {
  244. return;
  245. }
  246. $r = mysql_fetch_assoc($result);
  247. $row = array();
  248. $_SESSION['youtube_key'] = $r['value'];
  249. $row[$r['name']] = $_SESSION['youtube_key'];
  250. return $row;
  251. }
  252. /**
  253. * getYouTubeUserData
  254. *
  255. * @param int $user
  256. *
  257. * @return void
  258. */
  259. function getYouTubeUserData ($user)
  260. {
  261. $sql = "SELECT `youtube_session_token`
  262. FROM `fcms_user_settings`
  263. WHERE `user` = '$user'
  264. LIMIT 1";
  265. $result = mysql_query($sql);
  266. if (!$result)
  267. {
  268. displaySqlError($sql, mysql_error());
  269. return;
  270. }
  271. if (mysql_num_rows($result) <= 0)
  272. {
  273. return;
  274. }
  275. $r = mysql_fetch_assoc($result);
  276. return $r;
  277. }
  278. /**
  279. * getAuthSubHttpClient
  280. *
  281. * @param string $key the developer key
  282. * @param string $token optional user's authenticated session token
  283. *
  284. * @return Zend_Http_Client An authenticated client.
  285. */
  286. function getAuthSubHttpClient($key, $token = '')
  287. {
  288. if ($token == '')
  289. {
  290. if (isset($_SESSION['youtube_session_token']))
  291. {
  292. $token = $_SESSION['youtube_session_token'];
  293. }
  294. else
  295. {
  296. print '
  297. <div class="error-alert">
  298. <p>'.T_('Missing or invalid YouTube session token.').'</p>
  299. </div>';
  300. return false;
  301. }
  302. }
  303. try
  304. {
  305. $httpClient = Zend_Gdata_AuthSub::getHttpClient($token);
  306. }
  307. catch (Zend_Gdata_App_Exception $e)
  308. {
  309. print '
  310. <div class="error-alert">
  311. <p>'.T_('Could not connect to YouTube API. Your YouTube session token may be invalid.').'</p>
  312. <p><i>'.$e->getMessage().'</i></p>
  313. </div>';
  314. return false;
  315. }
  316. $httpClient->setHeaders('X-GData-Key', 'key='. $key);
  317. return $httpClient;
  318. }
  319. /**
  320. * getInstagramConfigData
  321. *
  322. * @return void
  323. */
  324. function getInstagramConfigData ()
  325. {
  326. if ( isset($_SESSION['instagram_client_id'])
  327. && isset($_SESSION['instagram_client_secret'])
  328. && !empty($_SESSION['instagram_client_id'])
  329. && !empty($_SESSION['instagram_client_secret']))
  330. {
  331. return array(
  332. 'instagram_client_id' => $_SESSION['instagram_client_id'],
  333. 'instagram_client_secret' => $_SESSION['instagram_client_secret']
  334. );
  335. }
  336. $sql = "SELECT `name`, `value`
  337. FROM `fcms_config`
  338. WHERE `name` = 'instagram_client_id'
  339. OR `name` = 'instagram_client_secret'";
  340. $result = mysql_query($sql);
  341. if (!$result)
  342. {
  343. displaySqlError($sql, mysql_error());
  344. return;
  345. }
  346. if (mysql_num_rows($result) <= 0)
  347. {
  348. return;
  349. }
  350. $row = array();
  351. while ($r = mysql_fetch_assoc($result))
  352. {
  353. $row[$r['name']] = $r['value'];
  354. $_SESSION[$r['name']] = $r['value'];
  355. }
  356. return $row;
  357. }
  358. /**
  359. * getUserInstagramAccessToken
  360. *
  361. * @param int $user
  362. *
  363. * @return void
  364. */
  365. function getUserInstagramAccessToken ($user)
  366. {
  367. $sql = "SELECT `instagram_access_token`
  368. FROM `fcms_user_settings`
  369. WHERE `user` = '$user'
  370. LIMIT 1";
  371. $result = mysql_query($sql);
  372. if (!$result)
  373. {
  374. displaySqlError($sql, mysql_error());
  375. return null;
  376. }
  377. if (mysql_num_rows($result) <= 0)
  378. {
  379. return null;
  380. }
  381. $r = mysql_fetch_assoc($result);
  382. if (empty($r['instagram_access_token']))
  383. {
  384. return null;
  385. }
  386. return $r['instagram_access_token'];
  387. }