gpt4 book ai didi

.net - 未采用 Google Site Verification API .NET 重定向 uri

转载 作者:行者123 更新时间:2023-12-02 01:44:59 25 4
gpt4 key购买 nike

(http 因信誉问题被删除)我正在测试 Google Site Verification API使用来自 Google 的“GoogleApisSamples”项目,但我有一个关于重定向 uri 的问题。我从我的 GoogleDrive 应用程序获得 client_secrets.json(设置了重定向 uris),但是这个程序获得的重定向 uri 类似于“localhost :1168/authorize/"(它改变了)。我将重定向 uri 设置为“www.google.com”和“www.google.com/”。

namespace SiteVerification.VerifySite

{

internal class Program
{
[STAThread]
static void Main(string[] args)
{
// Display the header and initialize the sample.
Console.WriteLine("Site Verification sample");
Console.WriteLine("========================");

UserCredential credential;
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { SiteVerificationService.Scope.Siteverification },
"user", CancellationToken.None, new FileDataStore("SiteVerification.VerifySite")).Result;
}

// Create the service.
var service = new SiteVerificationService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "SiteVerification API Sample",
});
RunVerification(service);

Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}

/// <summary>
/// This method contains the actual sample code.
/// </summary>
private static void RunVerification(SiteVerificationService service)
{
// Request user input.
Console.WriteLine("Please enter the URL of the site to verify:");
var site = Console.ReadLine();
Console.WriteLine();

// Example of a GetToken call.
Console.WriteLine("Retrieving a meta token ...");
var request = service.WebResource.GetToken(new SiteVerificationWebResourceGettokenRequest()
{
VerificationMethod = "meta",
Site = new SiteVerificationWebResourceGettokenRequest.SiteData()
{
Identifier = site,
Type = "site"
}
});
var response = request.Execute();
Console.WriteLine("Token: " + response.Token);
Console.WriteLine();

Console.WriteLine("Please place this token on your webpage now.");
Console.WriteLine("Press ENTER to continue");
Console.ReadLine();
Console.WriteLine();

// Example of an Insert call.
Console.WriteLine("Verifying...");
var body = new SiteVerificationWebResourceResource();
body.Site = new SiteVerificationWebResourceResource.SiteData();
body.Site.Identifier = site;
body.Site.Type = "site";
var verificationResponse = service.WebResource.Insert(body, "meta").Execute();

Console.WriteLine("Verification:" + verificationResponse.Id);
Console.WriteLine("Verification successful!");
}
}

还有我的“client_secrets.json”(我改变了大写的东西)

{
"web": {
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"client_secret": "CLIENT_SECRET",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"client_email": "STUFF",
"redirect_uris": [
"http://www.google.com/",
"http://www.google.com"
],
"client_x509_cert_url": "STUFF",
"client_id": "CLIENT_ID",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"javascript_origins": [
"https://www.google.com"
]
}

我得到的错误是:

  1. That’s an error.

Error: redirect_uri_mismatch

Application: GoogleApisSamples

请求中的重定向 URI:localhost:1168/authorize/ 与已注册的重定向 URI 不匹配。

最佳答案

重定向 URI 必须与您希望将身份验证返回到的位置相匹配

对于 native 应用程序的客户端 ID,您可以将其设置为以下内容:

 Redirect URIs     urn:ietf:wg:oauth:2.0:oob  
http://localhost

对于 Web 应用程序的客户端 ID,它更像这样

    Redirect URIs     
http://localhost/google-api-php-client-samples/oauth2.php

Web 必须修补到实际文件。

这个例子可能更容易使用将文件加载到流中。

string[] scopes = new string[] { SiteVerificationService.Scope.Siteverification };
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets
{
ClientId = CLIENT_ID,
ClientSecret = CLIENT_SECRET
},
scopes,
Environment.UserName,
CancellationToken.None,
new FileDataStore"Daimto.SiteVerification.Auth.Store")).Result;

// Create the service.
var service = new SiteVerificationService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "SiteVerification API Sample",
});

关于.net - 未采用 Google Site Verification API .NET 重定向 uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26174091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com