Генерировать "и никогда не истекает, что" маркер доступа для страницы Facebook

Мне удалось разместить на странице Facebook через API (на C#), но когда администратор страницы выходит следующая ошибка:

и"(OAuthException - #190) ошибка при проверке маркера доступа: сессия является недействительным, так как пользователь выходит из системы.&и"

Как создать маркер доступа, который не истек?

Мне нужно решение, которое не'т открыть диалог с Facebook логин.

Комментарии к вопросу (4)

Вы никогда не сможете создать маркер доступа истекает без кодирования, следуя этой инструкции:

  1. Откройте график проводника: https://developers.facebook.com/tools/explorer/.
  2. Выбрать ваше приложение из правого угла выпадающего списка.
  3. Из "возвращения" в выпадающем меню выбрать ваш фан-страницу.
  4. Нажмите на кнопку Отправить, чтобы генерировать маркер.
  5. С левой стороны на "Поиск поля" и введите access_token и нажмите кнопку Отправить. Скопируйте этот маркер из главного окна.
  6. Открыть https://developers.facebook.com/tools/debug/accesstoken и вставить маркер здесь. Нажмите "отладка и".
  7. Нажмите кнопку "и расширить доступ к маркеру и". Это создаст никогда не заканчивающийся маркером.
Комментарии (4)

Это код, который я использую, чтобы создать и"не то" срок действия маркера доступа с помощью PHP в СДК:

$facebook = new \Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  'default_graph_version' => 'v2.10',
  'default_access_token' => '{access-token}'
]);

// Exchange token
$token = $facebook->post('/oauth/access_token',
    array(  
        'grant_type' => 'fb_exchange_token',           
        'client_id' => 'APP ID',
        'client_secret' => 'APP Secret',
        'fb_exchange_token' => 'access Token'
    )
);
$token = $token->getDecodedBody();
$token = $token['access_token'];

echo $token;

Я Эхо маркер доступа, а затем отладить его с помощью маркер доступа отладчика. Результат должен быть: `истекает: никогда.

Ссылки из документации:

Комментарии (5)
Решение
  1. Генерации токена для администратора фан-страницу http://appdevresources.blogspot.sg/2012/11/extend-facebook-access-token-make-it.html (хорошее объяснение с картинками)
  2. Генерации токена для себя фан-страницу http://appdevresources.blogspot.sg/2012/11/retrieving-facebook-page-id-and.html
  3. Используйте маркер из 2), чтобы разместить на фан-странице's на стене (нет необходимости в Facebook диалоговое окно входа в систему)
  4. В результате маркер никогда не закончится (даже если администратор фан-страницу сделал выход)
Комментарии (3)

Вы можете использовать следующий API от facebook, чтобы обновить маркер жизни до 60 дней и только тогда, когда маркер заканчивается, называть один и тот же API раз в 60 дней, чтобы обновить свою жизнь до 60 дней с этого момента времени Маркер истекает присутствует в истекает параметр и его значение в секундах

Заменить CLIENT_ID и секрет клиента с их фактическим значением

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

в маркер доступа, поставить фактическое значение маркера без добавления "и маркер доступа="и

Комментарии (3)

Это's в ноябре 2018 года, и это работает для меня!


<?php
$args=[
    'usertoken'=>'xxx',
    'appid'=>'xxx',
    'appsecret'=>'xxx',
    'pageid'=>'xxx'
];
function generate_token($args){

$r = json_decode(file_get_contents("https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/{$args['pageid']}?fields=access_token&access_token={$longtoken}")); // get user id
    $finaltoken=$r->access_token;
    return $finaltoken;
}
echo "https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}";
echo '<br><br>Permanent access token is: <input type="text" value="'.generate_token($args).'">
Комментарии (2)
  1. Создать приложение, если вы не'т у - https://developers.facebook.com/
  2. Создать кратковременный доступ пользователей маркера в графе проводник - https://developers.facebook.com/tools/explorer/

Выберите приложение создано выше и выберите команду “получить доступ к токену пользователя в выпадающем списке”

В пользователя маркер доступа всплывал вы можете выбрать несколько разрешений для маркера. Для не годности страницу маркер доступа вам необходимо выбрать и"опубликовать на страницах" и "Управление страницами и"

  1. Создание долгоживущих маркер доступа пользователя

Перейти к https://developers.facebook.com/tools/accesstoken/. Здесь вы найдете короткоживущие маркеры доступа пользователя и маркер доступа приложение из всех приложений, которые вы

Меню отладки маркер доступа пользователя приложение создано выше. Это приведет вас к инструменту отладки. Где вы можете найти всю информацию короткоживущих маркер доступа пользователя.

В самом низу есть опция для создания долгоживущих(60 дней) доступ к токену пользователя для этого короткоживущего маркер доступа пользователя. Создания долгоживущих маркер доступа пользователя к опции “продлить маркер доступа”

  1. Создать не истек срок действия маркера доступа страницы

а. Перейдите в графе проводник - https://developers.facebook.com/tools/explorer/.

б. Вставьте долгоживущих маркер доступа пользователя, созданный в предыдущем шаге внутри поле “маркер доступа”.

С. Доступ к “/меня?поля=маркер доступа” по API . Это приведет маркеров доступа к страницам и страницы, связанные с ними. Эти жетоны странице доступ не ограничен(до смены пользователем пароля/пользователя отозвать приложение)

  1. Проверьте номера истечения доступ к странице маркер

а. Перейти к https://developers.facebook.com/tools/debug/accesstoken/

б. Добавить страницу маркер доступа, извлеченные из выше шаг в “маркер доступа “ и отладки

Вы получите истекает как никогда

Нашел здесь с небольшими изменениями: https://medium.com/@Jenananthan/how-to-create-non-expiry-facebook-page-token-6505c642d0b1

Комментарии (1)

Принято отвечать уже не исправить. Это работает сейчас.

Откройте график проводника: https://developers.facebook.com

  • Логин и выберите приложение из выпадающего правом углу
  • После входа в систему выберите инструменты & поддержка значок в верхнем правом углу
  • Затем выбрать ссылку инструмент маркер доступа с правой стороны под вашими приложениями название

В правой части отображается маркер пользователя и GT; нажмите кнопку [отладка] кнопка

Это у вас принято, чтобы маркер доступа отладчик

  • Нажмите на синюю кнопку внизу, которая говорит, что продлить маркер доступа
  • Это сказать: этот новый долгоживущий токен доступа никогда не истекает
  • Скопировать и вставить этот маркер в приложение т. е. EAAYMFDuobYUBADtYjVDukwBGpwPHOCY0iyglyy3j3r200mzybzb4.....
Комментарии (1)

Вам нужно получить токен доступа пользователя на FB.логин() с manage_pages, pages_show_list и другим В разрешения области видимости. Затем выполните ФБ.API-интерфейс(" у/{пользователь-приложение-идентификатор}/счетов с" поля: ...), чтобы получить список страниц с их соответственно информация, в том числе и маркер доступа. Здесь вы получите недолгим-маркер, но с помощью этого маркера вы сможете продлить срок действия, чтобы "не то".

FB.login(function (response){
  if(response.status!=="connected"){
    return;
  }        
  FB.api('/'+USER_APP_ID+'/accounts',{fields: 'id, name, access_token,category, picture'}, 
   function(d){
    console.log(d) // Here you get access_token (short-lived-token)
  });
},{scope: 'manage_pages, pages_show_list', auth_type: 'rerequest'});

С последнего маркера доступа и от серверной стороне, вы делаете вызов API для графа, используя ID приложения и секрет Приложения Приложения, которые вы используете для получения прав на управление страницей.

GET /oauth/access_token?  
grant_type=fb_exchange_token&           
client_id={app-id}&
client_secret={app-secret}&
fb_exchange_token={short-lived-token} 

Ответ дает вам маркер доступа с время экспирации в quot и;не то".

Ссылки: API-интерфейс графической счета, Срок действия и распространяется маркеры доступа

Комментарии (0)

Этот метод работал для меня, если вы используете 4.х Facebook СДК:

  1. Создать временный маркер доступа пользователя, впервые используя метод, упомянутый здесь.
  2. Сейчас! Это's время, чтобы превратить этот маркер для долгосрочного маркер с помощью PHP в СДК 4.х. Используйте следующий код, как он работал для меня:

//Класс для создания долгоживущих маркер

<?в PHP

namespace App\Lib;

use Facebook\FacebookApp;
use Facebook\FacebookClient;
use Facebook\Authentication\OAuth2Client;

class FacebookLongLivedTokenGenerator
{
    public $longLivedTokenGenerated = false;

    public function generateFacebookLongLivedToken($appId, $appSecret, $oldToken)
    {
        //request new access token
        $oauth2Fb = new OAuth2Client(new FacebookApp($appId, $appSecret), new FacebookClient());
        $longLivedToken = $oauth2Fb->getLongLivedAccessToken($oldToken);
        if ($longLivedToken) {
            $this->longLivedTokenGenerated = true;
            $this->userAccessToken = $longLivedToken;
        }
        return trim($this->userAccessToken);
    }
}

Вы можете потреблять выше класса таким образом:

$longToken = new FacebookLongLivedTokenGenerator();
echo $longToken->generateFacebookLongLivedToken($appId, $appSecret, $oldUserAccessToken);
Комментарии (0)

Используя Facebook API для В3.1 - Ни один из вышеперечисленных ответов работал для меня. Вместо этого мне пришлось:

  1. Создать "и пользователей системы"

  2. предоставить ему доступ к свойствам, которые мне нужны (в моем случае приложение)

  3. создавать новый токен для приложения и пользователей системы

Инструкции я использовал, можно найти здесь

Комментарии (0)

такой Makefile работает как от 2015-10-29. шаги 2 и 3 дают только на два месяца маркер, но маркер доступа приведен в заключительный этап шоу в в <а href="и https://developers.facebook.com/tools/debug/">отладчик</а> как "истекает: никогда и". этот ответ опирается на работу нескольких человек, и обеспечивается в надежде, что она будет упростить для разработчиков, вне зависимости от предпочитаемого языка программирования.

перед использованием этого, вам нужно положить ваш существующий идентификатор страницы, идентификатор приложения и секретный ключ приложения, в том порядке, в вашем ~/.netrc файл следующим образом: машина счета graph.facebook.com логин пароль 123456 234567 345678

также перед использованием это, войти в Facebook С программу w3m, нажав и"Держите меня в".

MACHINE := graph.facebook.com
PAGE_ID := $(shell awk '$$2 ~ /^$(MACHINE)$$/ {print $$4}' $(HOME)/.netrc)
APP_ID := $(shell awk '$$2 ~ /^$(MACHINE)$$/ {print $$6}' $(HOME)/.netrc)
APP_SECRET := $(shell awk '$$2 ~ /^$(MACHINE)$$/ {print $$8}' $(HOME)/.netrc)
PERMISSIONS := manage_pages,publish_actions,publish_pages
FB := https://www.facebook.com
GRAPH := https://$(MACHINE)
CODE ?=
TOKEN ?=
TWOMONTHTOKEN ?=
BROWSER ?= w3m -dump
REDIRECT := http://jc.unternet.net/test.cgi
CLIENT_SIDE := $(FB)/dialog/oauth?client_id=$(APP_ID)&redirect_uri=$(REDIRECT)
CLIENT_SIDE := $(CLIENT_SIDE)&scope=$(PERMISSIONS)&response_type=code
SERVER_SIDE := $(GRAPH)/oauth/access_token?client_id=$(APP_ID)
SERVER_SIDE := $(SERVER_SIDE)&redirect_uri=$(REDIRECT)
SERVER_SIDE := $(SERVER_SIDE)&client_secret=$(APP_SECRET)&code=$(CODE)
LONG_LIVED := $(GRAPH)/oauth/access_token?client_id=$(APP_ID)
LONG_LIVED := $(LONG_LIVED)&client_secret=$(APP_SECRET)
LONG_LIVED := $(LONG_LIVED)&grant_type=fb_exchange_token
LONG_LIVED := $(LONG_LIVED)&fb_exchange_token=$(TOKEN)
ACCOUNTS := $(GRAPH)/me/accounts?access_token=$(TWOMONTHTOKEN)
export
env:
    env
    @echo Usage: make code
    @echo '        ' make CODE=codefrompreviousstep token
    @echo '        ' make TOKEN=tokenfrompreviousstep longterm
    @echo '        ' make TWOMONTHTOKEN=tokenfrompreviousstep accounts
    @echo Then edit '$$HOME/.netrc' replacing password with page token
code:
    $(BROWSER) "$(CLIENT_SIDE)"
token:
    $(BROWSER) "$(SERVER_SIDE)"
longterm:
    $(BROWSER) "$(LONG_LIVED)"
accounts:
    $(BROWSER) $(ACCOUNTS)

оказывается, во многих случаях первый шаг не с w3m имеют. в таком случае, установите другой браузер, такой как Firefox; `СШ-х на свой сервер, если скрипт удаленно; и использовать сделать браузер=код Firefox вместо этого. следующие шаги должны работать с w3m имеют, как показано.

примечание: если вырезать и вставлять этот файл Makefile, обязательно замените 4-место вмятины с соответствующим вкладкам.

Комментарии (0)

podrias intentar алго Комо Эсто

`` Administrar Paginas в <а href=на"#" Класс="от БТН и" функция onclick="и token_live()" и >адрес</а>

<тип сценария="и текст/javascript" и> token_live функция(){ ВАР token_app = назальный;; $.технология AJAX({ URL-адрес: "https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id=598062314053459&client_secret=&#39;client_secret&#39;&fb_exchange_token=access_token", тип: 'пост', тип: 'html и#39;, данных: {api_public: 'АП-42b3a8aab70', }, }) .сделано(функция(данных) {

ВАР тхт = данные ВАР параметр obj = json-файле.разобрать(тхт);

token_live ВАР = кадриров.маркер доступа

ВАР url_infinit = "https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id=&#39;remplaza_cliente_id&#39;&client_secret=&#39;client_secret&#39;&fb_exchange_token="+token_live;

предупреждение(url_infinit);

``

Комментарии (0)