Facebook.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /*
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. namespace fecshop\services\customer;
  10. use fecshop\services\Service;
  11. use Yii;
  12. /**
  13. * Facebook child services.
  14. * @author Terry Zhao <2358269014@qq.com>
  15. * @since 1.0
  16. */
  17. class Facebook extends Service
  18. {
  19. public $facebook_app_id;
  20. public $facebook_app_secret;
  21. /**
  22. * @param $url | String , 用于得到返回url的字符串,$customDomain == false时,是urlKey,$customDomain == true时,是完整的url
  23. * @param $customDomain | boolean, 是否是自定义url
  24. * @return 得到跳转到facebook登录的url
  25. */
  26. public function getLoginUrl($url, $customDomain = false)
  27. {
  28. if (!$customDomain) {
  29. $redirectUrl = Yii::$service->url->getUrl($url);
  30. } else {
  31. $redirectUrl = $url;
  32. }
  33. $thirdLogin = Yii::$service->store->thirdLogin;
  34. $this->facebook_app_id = isset($thirdLogin['facebook']['facebook_app_id']) ? $thirdLogin['facebook']['facebook_app_id'] : '';
  35. $this->facebook_app_secret = isset($thirdLogin['facebook']['facebook_app_secret']) ? $thirdLogin['facebook']['facebook_app_secret'] : '';
  36. if (!$this->facebook_app_id || !$this->facebook_app_secret) {
  37. return '';
  38. }
  39. $fb = new \Facebook\Facebook([
  40. 'app_id' => $this->facebook_app_id,
  41. 'app_secret' => $this->facebook_app_secret,
  42. 'default_graph_version' => 'v2.10',
  43. ]);
  44. $helper = $fb->getRedirectLoginHelper();
  45. $permissions = ['email']; // Optional permissions
  46. $loginUrl = $helper->getLoginUrl($redirectUrl, $permissions);
  47. return $loginUrl;
  48. }
  49. }