私はGoogle .Net Quickstartに従っています。私は、ポート37623上のすべての時間を実行するために、プロジェクトを設定していると私が持っているGMail API正しく認証されていません
public class HomeController : Controller
{
static string[] Scopes = { GmailService.Scope.GmailReadonly };
static string ApplicationName = "APP NAME";
public ActionResult Index()
{
ViewBag.Title = "Home Page";
Run();
return View();
}
private void Run()
{
UserCredential credential;
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "<<MY REAL CLIENT ID IS HERE>>",
ClientSecret = "<<MY REAL CLIENT SECRET IS HERE>>"
},
Scopes,
"<<MY EMAIL ADDRESS>>",
CancellationToken.None, new FileDataStore("Mail.Labels")).Result;
}
}
...デベロッパーコンソールでアプリを設定し、MVCコントローラでこれを持っている(私は信じて)正しくましたデベロッパーコンソールでクライアントを設定して、http://localhost:37623/Home/Index
へのリダイレクトを許可します。
私が使用したいアカウントを明示しているにもかかわらず、私はアプリケーションを実行するときに私はGMailアカウントのリスト(私はカップルを持っています)です。アカウントセレクタをクリックしてアカウントを選択すると、すぐにエラーメッセージが表示され、400エラー:redirect_uri_mismatchが返されました。
私はエラーページのリクエストの詳細を見ればお分かりのように、それは
access_type=offline
scope=https://www.googleapis.com/auth/gmail.readonly
response_type=code
redirect_uri=http://localhost:41509/authorize/
client_id=<<MY CLIENT ID>>
...これを示し、REDIRECT_URI は間違っています。それはポート41509を指しています(この例では、それは呼び出しごとに変わります)。
私には何が欠けていますか?私はそうしていなければならないことは何ですか?リダイレクトURIを設定しているとは思われませんGoogleWebAuthorizationBroker.AuthorizeAsync
これは10分間のエクササイズになると思いました。 :-(