2

ページタブに含めるアプリを開発しています。このアプリでは、ユーザーがウェブカメラで写真を撮りに行き、その写真が私のファン ページの特定のアルバムに送信されます。

ここでスクリプトを見つけました: 彼は非常にうまく機能していますが、問題があります。スクリプトはユーザー 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>';
}`
4

2 に答える 2

0

エンドポイントにアクセスして、有効期間の長いアクセス トークンをリクエストする必要があります。

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/

于 2012-06-06T17:24:23.017 に答える
0

そのスクリプトを使用してファン ページのアルバムに投稿する場合は、ページアクセス トークンを取得する必要があります。トークンには有効期限がありません。

詳細はこちらをご覧ください: https://developers.facebook.com/docs/authentication/pages/

于 2012-06-06T17:44:03.600 に答える