Maison  >  Article  >  développement back-end  >  Analyse de la méthode de mise en œuvre de la connexion de PHP à l'interface QQ pour mettre en œuvre une plateforme sociale

Analyse de la méthode de mise en œuvre de la connexion de PHP à l'interface QQ pour mettre en œuvre une plateforme sociale

WBOY
WBOYoriginal
2023-07-10 14:36:17791parcourir

Analyse de la méthode de mise en œuvre de connexion PHP à l'interface QQ pour implémenter une plateforme sociale

À l'ère actuelle des médias sociaux, les gens s'appuient de plus en plus sur les plateformes sociales pour la communication et le partage. En tant que l'une des plateformes sociales les plus populaires en Chine, QQ est devenue une fonctionnalité incontournable pour de nombreux sites Web et applications. Cet article expliquera comment utiliser PHP pour connecter l'interface QQ afin d'implémenter la plateforme sociale et donnera des exemples de code correspondants.

  1. Obtenir un compte développeur de QQ Internet

Tout d'abord, nous devons demander un compte développeur de QQ Internet afin de pouvoir utiliser l'interface ouverte de QQ. Nous pouvons visiter le site officiel de QQ Internet, cliquer pour demander un compte de développeur et suivre les étapes pertinentes pour vous inscrire.

  1. Créer une application

Dans l'arrière-plan développeur de QQ Internet, nous pouvons créer une nouvelle application. Lors du processus de création d'une application, nous devons remplir certaines informations pertinentes, telles que le nom de l'application, le nom de domaine du site Web, etc. Après une création réussie, nous obtiendrons un App ID et une App Key, ces deux paramètres seront utilisés dans le code suivant.

  1. Obtenir l'URL autorisée

Avant que l'utilisateur ne se connecte, nous devons obtenir une URL autorisée pour guider l'utilisateur dans sa connexion et l'obtention de l'autorisation. En PHP, nous pouvons obtenir l'URL autorisée en utilisant le code suivant :

$appId = 'Your App ID';
$redirectUri = 'Your Redirect URL';
$scope = 'get_user_info,add_share';
$state = md5(uniqid(rand(), true));

$authUrl = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=".$appId."&redirect_uri=".$redirectUri."&scope=".$scope."&state=".$state;

Dans le code ci-dessus, nous devons remplacer Votre ID d'application par l'ID d'application que nous avons obtenu à la deuxième étape, Votre URL de redirection avec notre URL de redirection, $scope correspond aux autorisations que vous devez obtenir, et $state est un code de statut généré aléatoirement. Your App ID替换为我们在第二步中获得的App ID,Your Redirect URL替换为我们的重定向URL,$scope对应需要获取的权限,$state为随机生成的状态码。

  1. 获取Access Token

在用户进行授权后,QQ服务器会重定向到我们指定的$redirectUri并带上一个授权码参数。我们可以在重定向的页面接收并处理这个授权码,并使用它来获取Access Token。以下是获取Access Token的代码示例:

$appId = 'Your App ID';
$appKey = 'Your App Key';
$redirectUri = 'Your Redirect URL';
$code = $_GET['code'];

$tokenUrl = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=".$appId."&client_secret=".$appKey."&code=".$code."&redirect_uri=".$redirectUri;

$response = file_get_contents($tokenUrl);
if (strpos($response, "callback") !== false) {
    $lpos = strpos($response, "(");
    $rpos = strrpos($response, ")");
    $response  = substr($response, $lpos + 1, $rpos - $lpos -1);
    $msg = json_decode($response);
    if (isset($msg->error)) {
        echo "<h3>error:</h3>" . $msg->error;
        echo "<h3>msg  :</h3>" . $msg->error_description;
        exit;
    }
}

$params = array();
parse_str($response, $params);

$accessToken = $params['access_token'];

在上述代码中,我们需要将Your App ID替换为我们在第二步中获得的App ID,Your App Key替换为我们获得的App Key,Your Redirect URL

    Obtenir un jeton d'accès
    1. Après l'autorisation de l'utilisateur, le serveur QQ redirigera vers le $redirectUri que nous avons spécifié et apportera un paramètre de code d'autorisation. Nous pouvons recevoir et traiter ce code d'autorisation sur la page redirigée et l'utiliser pour obtenir le jeton d'accès. Voici un exemple de code pour obtenir un jeton d'accès :
    $openIdUrl = "https://graph.qq.com/oauth2.0/me?access_token=".$accessToken;
    
    $response = file_get_contents($openIdUrl);
    if (strpos($response, "callback") !== false) {
        $lpos = strpos($response, "(");
        $rpos = strrpos($response, ")");
        $response  = substr($response, $lpos + 1, $rpos - $lpos -1);
    }
    
    $userInfoUrl = "https://graph.qq.com/user/get_user_info?oauth_consumer_key=".$appId."&access_token=".$accessToken."&openid=".$response."&format=json";
    
    $userInfoResponse = file_get_contents($userInfoUrl);
    $userInfo = json_decode($userInfoResponse, true);
    
    $openId = $userInfo['openid'];
    $nickname = $userInfo['nickname'];
    $avatar = $userInfo['figureurl_qq_2'];

    Dans le code ci-dessus, nous devons remplacer Votre ID d'application par l'ID d'application que nous avons obtenu à la deuxième étape, Votre clé d'application par la clé d'application que nous avons obtenue et <code>Votre URL de redirection par notre URL de redirection.

    Obtenir l'Open ID de l'utilisateur et d'autres informations

    Après avoir obtenu le jeton d'accès, nous pouvons utiliser ce jeton pour obtenir l'Open ID de l'utilisateur et d'autres informations. Voici un exemple de code pour obtenir des informations sur l'utilisateur :

    rrreee

    Dans le code ci-dessus, nous utilisons le jeton d'accès et le code d'autorisation obtenus précédemment pour obtenir l'Open ID de l'utilisateur et d'autres informations en accédant à l'API fournie par QQ.

    Grâce aux étapes ci-dessus, nous pouvons réaliser la fonction d'utiliser PHP pour nous connecter à l'interface QQ afin de mettre en œuvre la plateforme sociale. Bien entendu, le code ci-dessus n’est qu’un exemple simple, et des traitements et débogages supplémentaires peuvent être nécessaires dans les projets réels.

      Résumé
    1. Cet article présente la méthode d'implémentation consistant à utiliser PHP pour connecter l'interface QQ afin d'implémenter une plateforme sociale. En demandant un compte développeur, en créant une application, en obtenant l'URL de saut, en obtenant le jeton d'accès et en obtenant les informations utilisateur, nous pouvons compléter la connexion avec l'interface QQ et mettre en œuvre les fonctions de la plateforme sociale. J'espère que cet article pourra aider tout le monde à comprendre et à utiliser PHP pour se connecter à l'interface QQ.
    2. Références :
    https://wiki.connect.qq.com/oauth2-0🎜🎜https://wiki.connect.qq.com/get_access_token🎜🎜https://wiki.connect.qq.com. /Obtenir l'utilisateur OpenID_OAuth2.0🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn