Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Facebook SDK在页面帖子/照片中标记persion_Php_Facebook_Api_Sdk - Fatal编程技术网

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参数?因为根据平台政策,这是不允许的。