0

クライアントが自分の Web サイトで何かを公開すると、Facebook で公開されるシステムを作成する必要がありますが、これを行うには、アカウントがまだシステムにログインする必要があるため、アクセス トークンを取得する必要があります。

私は自分のアプリを作成し、自分の facebook でテストしました。自分のシステムでログインしようとすると動作しますが、クライアント facebook のシステムでログインしようとすると、次のエラーが返されます。

エラーが発生しました。あとでもう一度試してみてください。

AccessToken を生成するための私のコードは次のとおりです。

require_once("php-sdk/src/facebook.php"); // Git からの最新の SDK ファイル

    $app_id = "APP_ID"; //ID do APP
    $app_secret = "APP_SECRET"; //Secret do APP

    $facebook = new Facebook(array(
      'appId'  => $app_id,
      'secret' => $app_secret
    ));

    $page_id = 'PAGE_ID';
    $message = "Teste de integração";

    $token_url = 'https://graph.facebook.com/oauth/access_token?'
        . 'client_id=' . $app_id
        . '&client_secret=' . $app_secret
        . '&grant_type=client_credentials';

    $token_response = file_get_contents_curl($token_url);
    $params = null;
    parse_str($token_response, $params);
    $app_access_token = $params['access_token'];

    // Get User ID
    $user = $facebook->getUser();

    if ($user) {
      try {
        $page_info = $facebook->api("/$page_id/?fields=access_token");
        //print_r($page_info);

        if( !empty($page_info['access_token']) ) {
        //if(!empty($app_access_token)) {
            $args = array(
                'access_token'  => $page_info['access_token'],
                'message'       => $message
            );
           // print_r($args);
           // $post_id = $facebook->api("/$page_id/feed","post",$args);
        } else {
            $permissions = $facebook->api("/me/permissions");
            if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
               !array_key_exists('manage_pages', $permissions['data'][0])) {
                    // We don't have one of the permissions
                    // Alert the admin or ask for the permission!
                    header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
            }
        }
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
    }

    // Login or logout url will be needed depending on current user state.
    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream, offline_access'));
    }

?>

<?php if (!$user): ?>
    <a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>

私はすでにユーザーを再構成しようとしていますが、ユーザーからのすべての構成は、エラーを返さなかった別のアカウントからのものと同じです。

4

0 に答える 0