【问题标题】:access_token - Script to upload photo in fan page albumaccess_token - 在粉丝页面相册中上传照片的脚本
【发布时间】:2012-06-10 17:57:53
【问题描述】:

我正在开发一个应用程序以包含在我的页面选项卡中。在这个应用程序中,用户将使用您的网络摄像头拍照,并将照片发送到我的粉丝页面中的特定相册。

我在这里找到了一个脚本:他工作得很好,但是我有一个问题,脚本使用用户access_token来上传图片,不需要所有用户的权限来上传图片,因为脚本使用我的管理员用户发送到页面。

最大的问题是:用户访问令牌在 2 小时后过期或当我的管理员用户未登录时,offline_access 权限已停用,我不知道我的脚本将如何工作。

我需要所有用户都可以使用系统上传照片,有人知道我该怎么做吗?

这是 PHP 中的脚本:

`
require_once 'library/facebook.php';

$facebook = new Facebook(array(
    'appId'  => '<appid>',
    'secret' => '<appsecret>',
    'fileUpload' => true
));
$access_token = 'access_token';
$params = array('access_token' => $access_token);
$fanpage = 'page_id';
$album_id ='album_id';
$accounts = $facebook->api('/ADMIN_ACCOUNT/accounts', 'GET', $params);

foreach($accounts['data'] as $account) {
    if( $account['id'] == $fanpage || $account['name'] == $fanpage ){
        $fanpage_token = $account['access_token'];
    }
}

$valid_files = array('image/jpeg', 'image/png', 'image/gif');
$img = realpath("image_path");

$args = array(
    'message' => 'message to write in legend',
    'image' => '@' . $img,
    'aid' => $album_id,
    'no_story' => 1,
    'access_token' => $fanpage_token
);

$photo = $facebook->api($album_id . '/photos', 'post', $args);

if( is_array( $photo ) && !empty( $photo['id'] ) ){
    echo '<p><a target="_blank" href="http://www.facebook.com/photo.php?fbid='.$photo['id'].'">Click here to watch this photo on Facebook.</a></p>';
}`

【问题讨论】:

    标签: php facebook facebook-page facebook-access-token


    【解决方案1】:

    如果您使用该脚本发布到粉丝页面的相册,那么您应该获得一个 page 访问令牌 - 它们不会过期。

    详情见这里:https://developers.facebook.com/docs/authentication/pages/

    【讨论】:

    • Tks @CBroe 但是,该脚本可以作为用户脚本上传到页面中,该脚本将在短时间内用于特定促销,并且使用具有长过期时间的令牌可以正常工作.
    【解决方案2】:

    您需要通过点击端点来请求长期访问令牌:

    https://graph.facebook.com/oauth/access_token?             
        client_id=APP_ID&
        client_secret=APP_SECRET&
        grant_type=fb_exchange_token&
        fb_exchange_token=EXISTING_ACCESS_TOKEN 
    

    查看以下文档中的场景 4: http://developers.facebook.com/roadmap/offline-access-removal/

    【讨论】:

    • Tks,访问令牌现在有效期为两个月。并且可以通过这种方式制作一个脚本来自动更新访问令牌?在此到期之前使用 curl 获取新的访问令牌。这行得通吗?
    • 不,用户需要时常回来让您获得扩展令牌
    • @Igy 真的想得更好,只有当我的用户登录 fb 时才会生成令牌,因此,不可能创建脚本来自动更新令牌
    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多