Google Cloud API - Application Default Credentials

前端 未结 5 1330
借酒劲吻你
借酒劲吻你 2021-02-04 07:04

I have the following code, modified from Google\'s documentation:

        $GOOGLE_APPLICATION_CREDENTIALS = \"./[path].json\";
        $_ENV[\"GOOGLE_APPLICATION         


        
相关标签:
5条回答
  • 2021-02-04 07:08

    I agree with the above answer, but only want to describe if user getting error in php using nlp google:

    <?php 
    
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    # Includes the autoloader for libraries installed with composer
    require __DIR__ . '/vendor/autoload.php';
    
    # Imports the Google Cloud client library
    use Google\Cloud\Language\LanguageClient;
    putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/sgupta/www/practise/nlp/google/cred.json'); //your path to file of cred
    //$client->useApplicationDefaultCredentials();
    # Your Google Cloud Platform project ID
    $projectId = 'nlp-project-nname'; //your project name
    
    # Instantiates a client
    $language = new LanguageClient([
        'projectId' => $projectId
    ]);
    
    # The text to analyze
    $text = 'Sachin Tendulkar';
    
    
    
    # Detects the sentiment of the text
    $annotation = $language->analyzeSentiment($text);
    $sentiment = $annotation->sentiment();
    echo "<pre>";
    print_r($annotation); die;
    
    echo 'Text: ' . $text . '
    Sentiment: ' . $sentiment['score'] . ', ' . $sentiment['magnitude'];
    ?>
    
    0 讨论(0)
  • 2021-02-04 07:17

    You need to use putenv() (http://php.net/manual/en/function.putenv.php) instead of trying to use any of the methods you have used ($_ENV or $_SERVER).

    Taken from https://github.com/google/google-api-php-client/blob/master/UPGRADING.md#google_auth_assertioncredentials-has-been-removed

    // OR use environment variables (recommended)
    
    putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');
    $client->useApplicationDefaultCredentials();
    
    0 讨论(0)
  • 2021-02-04 07:18

    Alternatively you can define a path to your json file like this

    $client = new Google_Client();
    $client->setAuthConfig('/path/to/credentials.json');
    
    0 讨论(0)
  • 2021-02-04 07:24

    Use this one it's working for me

    # Includes the autoloader for libraries installed with composer
    require __DIR__ . '/vendor/autoload.php';
    
    putenv('GOOGLE_APPLICATION_CREDENTIALS=../service-account.json');
    $client = new Google_Client();
    $client->useApplicationDefaultCredentials();
    $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
    $client->refreshTokenWithAssertion();
    $token = $client->getAccessToken();
    $accessToken = $token['access_token'];
    
    0 讨论(0)
  • 2021-02-04 07:34

    Attempt to use the ImageAnnotator like below When running the code, observe that you get an error: Could not construct ApplicationDefaultCredentials

    solution

    putenv("GOOGLE_APPLICATION_CREDENTIALS=/home/netwons/Downloads/AIz.json");
    

    but not work. OS: Ubuntu PHP version: 7.2.4 Package name and version: google/cloud-vision 0.19.1 this is code

    $imageAnnotator = new ImageAnnotatorClient();
    //        $client->setAuthConfig('key.json');
    
            # the name of the image file to annotate
            $fileName = '2.png';
    
            # prepare the image to be annotated
            $image = file_get_contents($fileName);
    
            # performs label detection on the image file
            $response = $imageAnnotator->labelDetection($image);
            $labels = $response->getLabelAnnotations();
    
            if ($labels) {
                echo("Labels:" . PHP_EOL);
                foreach ($labels as $label) {
                    echo($label->getDescription() . PHP_EOL);
                }
            } else {
                echo('No label found' . PHP_EOL);
            }
    
    0 讨论(0)
提交回复
热议问题