C# Google API throws exception

时间:2018-01-27 04:59:29

标签: c# google-api credentials

I am using Google API for the first time and I want to use Natural Language API. But I don't know how.

So I search the internet and found an example code.

But when it uses APIs, the program throws an exception.

problem source code and thrown exception:

using Google.Cloud.Language.V1;
using System;

namespace GoogleCloudSamples
{
    public class QuickStart
    {
        public static void Main(string[] args)
        {
            // The text to analyze.
            string text = "Hello World!";
            try
            {
                var client = LanguageServiceClient.Create();
                var response = client.AnalyzeSentiment(new Document()
                {
                Content = text,
                Type = Document.Types.Type.PlainText
                });
                var sentiment = response.DocumentSentiment;
                Console.WriteLine($"Score: {sentiment.Score}");
                Console.WriteLine($"Magnitude: {sentiment.Magnitude}");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

The console output:

The Application Default Credentials are not available.
They are available if running on Google Compute Engine.
Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials.
See https://developers.google.com/accounts/docs/application-default-credentials for more information.

What should I do?

1 个答案:

答案 0 :(得分:0)

一年前我曾使用NLP进行实体分析。我用过Google.Apis.CloudNaturalLanguage.v1。我把我的代码与你为感情分析所写的内容放在一起。您将需要API密钥:

var service = new CloudNaturalLanguageService(new CloudNaturalLanguageService.Initializer { ApiKey = ApiKey });

var req = new AnalyzeSentimentRequest {
    Document = new Document()
    {
        Content = text,
        Type = Document.Types.Type.PlainText
    },
    EncodingType = "UTF8"
};

var output = service.Documents.AnalyzeSentiment(req);
var exe = output.Execute();

希望这有效。