【问题标题】:How to add instagram oauth using Hybrid Auth?如何使用混合身份验证添加 instagram oauth?
【发布时间】:2023-03-03 13:45:02
【问题描述】:

当我尝试使用正确的密钥凭据添加 Instagram OAuth 时。 它向我显示了这样的错误。是的,我将 instagram.php 从第三方提供商移到了提供商

( ! ) Notice: Undefined index: id in C:\wamp\www\edit\hybridauth-2.6.0\hybridauth\Hybrid\Provider_Model_OAuth2.php on line 68
Call Stack
#   Time    Memory  Function    Location
1   0.0010  257688  {main}( )   ..\login-with.php:0
2   0.0090  748648  Hybrid_Auth::authenticate( )    ..\login-with.php:13
3   0.0090  748856  Hybrid_Auth::setup( )   ..\Auth.php:229
4   0.0090  750288  Hybrid_Provider_Adapter->factory( ) ..\Auth.php:277
5   0.0100  783760  Hybrid_Provider_Model->__construct( )   ..\Provider_Adapter.php:101
6   0.0100  785296  Hybrid_Providers_Instagram->initialize( )   ..\Provider_Model.php:96
7   0.0100  785832  Hybrid_Provider_Model_OAuth2->initialize( ) ..\Instagram.php:21
Missing provider application credentials.

Original error message: Your application id and secret are required in order to connect to Instagram
```

用.php登录

<?php
        session_start();
        include('config.php');
        include('hybridauth-2.6.0/hybridauth/Hybrid/Auth.php');
        if(isset($_GET['provider']))
        {
            $provider = $_GET['provider'];

            try{

            $hybridauth = new Hybrid_Auth( $config );

            $authProvider = $hybridauth->authenticate($provider);

            $user_profile = $authProvider->getUserProfile();

            if($user_profile && isset($user_profile->identifier))
            {
                echo "<b>Name</b> :".$user_profile->displayName."<br>";
                echo "<b>Profile URL</b> :".$user_profile->profileURL."<br>";
                echo "<b>Image</b> :".$user_profile->photoURL."<br> ";
                echo "<img src='".$user_profile->photoURL."'/><br>";
                echo "<b>Email</b> :".$user_profile->email."<br>";
                        echo "<b>Email</b> :".$user_profile->identifier."<br>";                                             
                echo "<br> <a href='logout.php'>Logout</a>";
            }           

            }
            catch( Exception $e )
            { 

                 switch( $e->getCode() )
                 {
                        case 0 : echo "Unspecified error."; break;
                        case 1 : echo "Hybridauth configuration error."; break;
                        case 2 : echo "Provider not properly configured."; break;
                        case 3 : echo "Unknown or disabled provider."; break;
                        case 4 : echo "Missing provider application credentials."; break;
                        case 5 : echo "Authentication failed. "
                                         . "The user has canceled the authentication or the provider refused the connection.";
                                 break;
                        case 6 : echo "User profile request failed. Most likely the user is not connected "
                                         . "to the provider and he should to authenticate again.";
                                 $twitter->logout();
                                 break;
                        case 7 : echo "User not connected to the provider.";
                                 $twitter->logout();
                                 break;
                        case 8 : echo "Provider does not support this feature."; break;
                }

                // well, basically your should not display this to the end user, just give him a hint and move on..
                echo "<br /><br /><b>Original error message:</b> " . $e->getMessage();

                echo "<hr /><h3>Trace</h3> <pre>" . $e->getTraceAsString() . "</pre>";

            }

        }



?>

config.php

<?php

$config =array(
        "base_url" => "http://localhost/edit/hybridauth-2.6.0/hybridauth", 
        "providers" => array ( 

            "Google" => array ( 
                "enabled" => true,
                "keys"    => array ( "id" => "", "secret" => "" ), 
            ),

            "Facebook" => array ( 
                "enabled" => true,
                "keys"    => array ( "id" => "", "secret" => "" ), 
            ),

            "Twitter" => array ( 
                "enabled" => true,
                "keys"    => array ( "key" => "XXXXXXXX", "secret" => "XXXXXXXX" ),
            ),
            "Instagram" => array (
                "enabled" => true,
                "keys"    => array ( "key" => "my_instagram keys", "secret" => "my_instgram secret" ),

                ) 
        ),
        // if you want to enable logging, set 'debug_mode' to true  then provide a writable file by the web server on "debug_file"
        "debug_mode" => false,
        "debug_file" => "",
    );

【问题讨论】:

    标签: php hybridauth hybridauthprovider


    【解决方案1】:

    Key 替换为id

       "keys" => array ( 
               "key" => "my_instagram keys", 
               "secret" => "my_instgram secret"
             )
    

    替换为

        "keys" =>array(
             "id" => "my_instagram keys",
             "secret" => "my_instgram secret" ) 
    

    它会起作用的。

    【讨论】:

      猜你喜欢
      • 2014-04-30
      • 2011-01-16
      • 2018-06-04
      • 2015-07-18
      • 2018-08-26
      • 2016-12-24
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多