2016-01-22 1 views
1

J'ai besoin d'accéder à infusionsoft api sans interaction de l'utilisateur. Je ne veux pas laisser l'utilisateur cliquer sur un clic pour que je puisse obtenir un tocken. C'est possible?infusionsoft - Comment obtenir un token sans cliquer sur le lien?

$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>'; 
} 

Répondre

0

Si vous cherchez à interagir avec l'API et ne pas avoir accès via les méthodes OAuth plus récentes, vous aurez besoin d'utiliser l'API héritée amortissable qui utilise un API key from the actual Infusionsoft application. L'avantage est que, sauf si l'utilisateur change sa clé API, vous n'avez pas besoin de "renouveler" ou "actualiser" le jeton et vous n'avez pas besoin que l'utilisateur clique sur une autorisation de leur application. Le gros inconvénient, bien sûr, est que cette ancienne API a été dépréciée et que toutes les nouvelles applications doivent utiliser oAuth.

Quel est le cas d'utilisation où vous ne pouvez pas parcourir les utilisateurs via un flux d'authentification oAuth?

+0

Je suis dans la même situation. Notre cas d'utilisation est que nous devons récupérer nos commandes afin que nous puissions les gérer via notre propre administrateur centralisé. – cyberwombat

0

Marque 3 fichiers

  1. Request_new_token.php. Il est similaire à votre code (besoin d'exécuter une seule fois), mais vous devrez enregistrer le jeton dans la base de données ou dans le fichier 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. Avec le jeton sauvegardé, vous devrez l'actualiser dans les 21 heures. Je suggère d'utiliser cronjob pour l'exécuter automatiquement sur le serveur back-end.

  3. General_request.php (Jusqu'à la préférence de votre système). Chaque fois que vous avez besoin de faire une requête unique à GET/PUT/POST, il vous suffit de lancer infusionsoft object et de définir le jeton sur le nouvel objet à partir de la base de données.

Bonne chance!