Php 使用Facebook SDK在页面帖子/照片中标记persion
我可以以编程方式代表页面发布。我希望能够将发布到一个人,或者在帖子中标记他们,或者在评论中标记他们。我只需要创建一个帖子作为一个页面,并将其绑定到一个用户 编辑:我真的希望能够发布一个页面帖子,标记一个用户,或者在评论中标记他们,或者在照片中标记他们。通知他们的任何形式的标签 我试着在照片中给人贴标签。标记显示为挂起,没有通知,当我批准标记时,它将永久消失。所以可能不可能 以下是我目前的代码:Php 使用Facebook SDK在页面帖子/照片中标记persion,php,facebook,api,sdk,Php,Facebook,Api,Sdk,我可以以编程方式代表页面发布。我希望能够将发布到一个人,或者在帖子中标记他们,或者在评论中标记他们。我只需要创建一个帖子作为一个页面,并将其绑定到一个用户 编辑:我真的希望能够发布一个页面帖子,标记一个用户,或者在评论中标记他们,或者在照片中标记他们。通知他们的任何形式的标签 我试着在照片中给人贴标签。标记显示为挂起,没有通知,当我批准标记时,它将永久消失。所以可能不可能 以下是我目前的代码: <?php $pageId = 'removed'; // P
<?php
$pageId = 'removed';
// Pass session data over.
// Include the required dependencies.
require( __DIR__.'/facebook/autoload.php' );
session_start();
//$_SESSION["accessToken"] = null;
// Initialize the Facebook PHP SDK v5.
$fb = new Facebook\Facebook([
'app_id' => 'removed',
'app_secret' => 'removed',
'default_graph_version' => 'v2.5',
]);
if(isset($_SESSION["accessToken"])){ //if authorized
$photo = [
'message' => 'Test message.',
'source' => $fb->fileToUpload('glow.jpg'),
'tags' => array(
array(
'tag_uid'=> removed,
'tag_text' => 'name',
'x' => '50',
'y' => '50',
)
)
];
//auth page
$response = $fb->get('/' . $pageId . '?fields=access_token', $_SESSION["accessToken"]);
$pageNode = $response->getGraphNode();
$pageToken = $pageNode['access_token'];
$response = $fb->post('/' . $pageId . '/photos', $photo, $pageToken);
$postNode = $response->getGraphNode();
$postId = $postNode['id'];
echo 'Page Token: ' . $pageToken . '<br />Post Id:' . $postId;
$response = $fb->post('/' . $postId . '/comments', array (
'message' => 'This is a test comment. @[{19292868552}:1:{Martin Firth}] tag thing.',
), $_SESSION["accessToken"]);
} else { //not authorized yet
$helper = $fb->getRedirectLoginHelper();
$accessToken = $helper->getAccessToken();
$_SESSION["accessToken"] = $accessToken;
// Send the request to Graph
try {
$response = $fb->get('/' . $pageId . '?fields=access_token', $accessToken);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
//echo 'Facebook SDK returned an error: ' . $e->getMessage();
$permissions = ['email', 'user_likes', 'publish_pages', 'publish_actions'];
$loginUrl = $helper->getLoginUrl('http://localhost/terranova/site/', $permissions);
echo ' <a href="' . $loginUrl . '">Log in with Facebook!</a>';
exit;
}
}
?>
我认为这是不可能的。你为什么需要这个?具体的使用案例是什么?商店里的用户将请求信息,应用程序将通过facebook向他们发布这些信息。我是否可以作为页面发布,然后作为管理员用户发布评论,在评论中标记客户?他们如何请求信息?他们不向页面发送消息吗?您可以使用api回复消息。请求信息,在应用商店中。该应用程序将被授权为页面,以发布用户标记的请求信息。这可能吗?我正在探索上传一张照片,并在照片中标记它们,这是可行的,但由于某种原因,标记被认为是挂起的…我想你已经知道它是如何工作的,只是它是挂起的?您应该包含该代码。另外,我假设您会为它预先填充message参数?因为根据平台政策,这是不允许的。