2016-01-22 1 views
1

Мне нужно получить доступ к infusionsoft api без взаимодействия с пользователем. Я не хочу, чтобы пользователь нажимал на клик, чтобы я мог получить токен. Является ли это возможным?infusionsoft - Как получить токен без ссылки?

$infusionsoft = new Infusionsoft\Infusionsoft(array(
    'clientId'  => '...', 
    'clientSecret' => '...', 
    'redirectUri' => '...', 
)); 

// If the serialized token is available in the session storage, we tell the SDK 
// to use that token for subsequent requests. 
if (isset($_SESSION['token'])) { 
    $infusionsoft->setToken(unserialize($_SESSION['token'])); 
} 

// If we are returning from Infusionsoft we need to exchange the code for an 
// access token. 
if (isset($_GET['code']) and !$infusionsoft->getToken()) { 
    $infusionsoft->requestAccessToken($_GET['code']); 
} 

if ($infusionsoft->getToken()) { 
    // Save the serialized token to the current session for subsequent requests 
    $_SESSION['token'] = serialize($infusionsoft->getToken()); 

    // MAKE INFUSIONSOFT REQUEST 
} else { 
    echo '<a href="' . $infusionsoft->getAuthorizationUrl() . '">Click here to authorize</a>'; 
} 

ответ

0

Если вы хотите, чтобы взаимодействовать с API и не получить доступ через новые методы OAuth, вы должны будешь использовать изношенное унаследованное API, который использует API key from the actual Infusionsoft application. Положительным моментом является то, что, если пользователь не изменит свой ключ API, вам не нужно «обновлять» или «обновлять» токен, и вам не нужно, чтобы пользователь нажимал на авторизацию своего приложения.

Большой недостаток, конечно, в том, что этот старый API был обесценен, и все новые приложения должны использовать oAuth.

Каков предел использования, в котором вы не можете пройти пользователей через поток аутентификации oAuth?

+0

Я в такой же ситуации. Наш прецедент состоит в том, что нам нужно получить наши заказы, чтобы мы могли управлять ими через нашего собственного централизованного администратора. – cyberwombat

0

Make 3 файлы

  1. Request_new_token.php. Он похож на ваш код (нужно запускать только один раз), но вам нужно сохранить токен в базу данных или файл txt.

    //Convert object to string 
    $token = serialize($infusionsoft->requestAccessToken($_GET['code'])); 
    //Update the token in database. 
    $update = new Update("systemsettings"); 
    $update->addColumn('systemsettings_strvalue', $token); 
    $update->run(1); 
    exit;  
    
  2. Refresh_token.php. С сохраненным токеном вам нужно будет обновить его в течение 21 часа. Я предлагаю использовать cronjob для автоматического запуска его на сервере.

  3. General_request.php (До вашего системного предпочтения). Всякий раз, когда вам нужно сделать один запрос GET/PUT/POST, вам просто нужно запустить объект infusionsoft и установить токен на новый объект из базы данных.

Удачи вам!