2017-03-21 1 views
1

Ich versuche mich über google mit codeigniter framework anzumelden. Es hat vorher gut funktioniert. Derselbe Code gibt jetzt eine Fehlermeldung aus. Wie kann ich das lösen?Nachricht: HTTP-Fehler: (0) Verbindung zum accounts.google.com-Port 80 fehlgeschlagen: Zeitüberschreitung bei Verbindung

Lokaler Host zeigt unter Fehler

An uncaught Exception was encountered 

Type: apiIOException 

Message: HTTP Error: (0) Unsupported proxy scheme for 'https://accounts.google.com/o/oauth2/token' 

Filename: application\third_party\google-login-api\io\apiCurlIO.php 

nach auf Server gehostet zeigt es unter Fehler

Type: apiIOException 

Message: HTTP Error: (0) Failed to connect to accounts.google.com port 80: Connection timed out 

Filename: application/third_party/google-login-api/io/apiCurlIO.php 

unten ist mein curl Skript

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_PROXY, $request->getUrl()); //your proxy url 
    curl_setopt($ch, CURLOPT_PROXYPORT, "80"); // your proxy port number 
    curl_setopt_array($ch, self::$DEFAULT_CURL_PARAMS); 
    curl_setopt($ch, CURLOPT_URL, $request->getUrl()); 
    if ($request->getPostBody()) { 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getPostBody()); 
    } 

    $requestHeaders = $request->getRequestHeaders(); 
    if ($requestHeaders && is_array($requestHeaders)) { 
     $parsed = array(); 
     foreach ($requestHeaders as $k => $v) { 
     $parsed[] = "$k: $v"; 
     } 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $parsed); 
    } 

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod()); 
    curl_setopt($ch, CURLOPT_USERAGENT, $request->getUserAgent()); 

    $respData = curl_exec($ch); 

    // Retry if certificates are missing. 
    if (curl_errno($ch) == CURLE_SSL_CACERT) { 
     error_log('SSL certificate problem, verify that the CA cert is OK.' 
     . ' Retrying with the CA cert bundle from google-api-php-client.'); 
     curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem'); 
     $respData = curl_exec($ch); 
    } 

    $respHeaderSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
    $respHttpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    $curlErrorNum = curl_errno($ch); 
    $curlError = curl_error($ch); 
    curl_close($ch); 
    if ($curlErrorNum != CURLE_OK) { 
     throw new apiIOException("HTTP Error: ($respHttpCode) $curlError"); 
    } 

Wie dieses Problem zu lösen?

+0

@DanielStenberg können Sie bitte die aktualisierte Frage? Wenn ich Dateien auf den Server hochgeladen habe, wurde die Fehlermeldung geändert –

+0

"Konnte keine Verbindung zum accounts.google.com Port 80 herstellen". Bedeutet genau was es sagt. curling konnte keine Verbindung zum TCP-Port 80 auf dem Host "accounts.google.com" von diesem Computer herstellen. Aufgrund von Netzwerkeinstellungen, einer Firewall oder etwas anderem. –

+0

@DanielStenberg dann, wie kann ich überprüfen, ob es eine Firewall auf dem Server gibt oder nicht? oder was blockiert meine Anfrage? –

Antwort

0

Ich habe einen Code für die Anmeldung mit Google Mail in Codeigntor. Sie können den Code ändern und versuchen Sie es mit folgenden 4 Dateien. Ich bin sicher, dass dieser Code dir hilft.

File1: config/googleplus.php:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
$config['googleplus']['application_name'] = 'abc'; 
$config['googleplus']['client_id']  = '#######'; 
$config['googleplus']['client_secret'] = '#######'; 
$config['googleplus']['redirect_uri']  = 'abc.com/social_login'; 

$config['googleplus']['api_key']   = '######'; 
$config['googleplus']['scopes']   = array(); 
?> 

File2: Bibliotheken/Googleplus.php:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
    class Googleplus { 

    public function __construct() { 

    $CI =& get_instance(); 
    $CI->config->load('googleplus'); 

    require APPPATH .'third_party/google-login-api/apiClient.php'; 
    require APPPATH .'third_party/google-login-api/contrib/apiOauth2Service.php'; 



    $this->client = new apiClient(); 
    $this->client->setApplicationName($CI->config->item('application_name', 'googleplus')); 
    $this->client->setClientId($CI->config->item('client_id', 'googleplus')); 
    $this->client->setClientSecret($CI->config->item('client_secret', 'googleplus')); 
    $this->client->setRedirectUri($CI->config->item('redirect_uri', 'googleplus')); 
    $this->client->setDeveloperKey($CI->config->item('api_key', 'googleplus')); 
    $this->client->setScopes($CI->config->item('scopes', 'googleplus')); 
    $this->client->setAccessType('online'); 
    $this->client->setApprovalPrompt('auto'); 
    $this->oauth2 = new apiOauth2Service($this->client); 

} 

public function loginURL() { 
    return $this->client->createAuthUrl(); 
} 

public function getAuthenticate() { 
    return $this->client->authenticate(); 
} 

public function getAccessToken() { 
    return $this->client->getAccessToken(); 
} 

public function setAccessToken() { 
    return $this->client->setAccessToken(); 
} 

public function revokeToken() { 
    return $this->client->revokeToken(); 
} 

public function getUserInfo() { 
    return $this->oauth2->userinfo->get(); 
} 

} 
?> 

File3: Controller/login.php:

<?php 

if (!defined('BASEPATH')) 
exit('No direct script access allowed'); 
class Login extends CI_Controller { 

function __construct() { 
    parent::__construct(); 
    $this->load->library('Googleplus'); 
} 

    $data['login_url'] = $this->googleplus->loginURL(); 
    $this->load->view('user_login', $data); 
} 
?> 

Datei4: vie ws/login.php:

<a href="<?php echo $login_url;?>">Login with google</a> 
Verwandte Themen