1 /**
2 * 获取临时访问口令
3 * @param $pageId
4 * @param $access_token
5 * @return mixed
6 */
7 public function getPageAccessToken($pageId, $access_token)
8 {
9 $accessTokenUrl = "https://graph.facebook.com/v4.0/{$pageId}?fields=access_token&access_token={$access_token}";
10 $pageAccessTokenInfo = curl($accessTokenUrl);
11 try{
12 $pageAccessTokenInfo = json_decode($pageAccessTokenInfo, true);
13 $pageAccessToken = $pageAccessTokenInfo['access_token'];
14 }catch (Exception $e) {
15 $this->showResults(-1, null, '获取page_access_token失败!');
16 }
17
18 return $pageAccessToken;
19 }
/**
* 获取facebook授权code
*/
public function bindAction(){
$redirectUrl = facebook redirectUrl;
$appId = facebook appId;
$appSecret = facebook appSecret;
$fb = new Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => 'v2.10',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['manage_pages','publish_pages'];
$codeUrl = $helper->getLoginUrl($redirectUrl, $permissions);
$this->showResults(1, ['url' => $codeUrl]);
}
/**
* facebook分享发布
*/
public function facebookShareAction()
{
$data = getPost('data');//一次请求中只能有一个选项 1,分享链接, 2单张图片链接, 3,多张图片ID
$content['message'] = $data['message'];
if ($data['link']) {
$content['link'] = $data['link'];
} else if ($data['url']) {
$content['link'] = '';
$content['url'] = $data['url'];
} else if ($data['attached_media']) {
$content['link'] = '';
$content['url'] = '';
$media = explode(',', $data['attached_media']);
if (count($media) >= 10) {
$this->showResults(-2, null, '一次上传最多不能超过9张图片!');
}
foreach ($media as $mediaId) {
$temp[] = ['media_fbid' => $mediaId];
}
$content['attached_media'] = json_encode($temp);
}
$appId = facebook appId;
$appSecret = facebook appSecret;
$fbAccessToken = $this->cache->get($this->facebookAccessTokenKey);
if (!$fbAccessToken) {
$this->showResults(-1, null, '请先绑定Facebook账号!');
}
$fb = new Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => 'v2.3',
]);
try {
$response = $fb->get(
'/me/accounts',
$fbAccessToken