Umbraco 7.4.3 を使用しているプロジェクト (ASP.NET MVC 5) に取り組んでいます。oauth2 とともに Google アナリティクス API を実装しようとしています。Google ドキュメンテーション プラットフォームで入手できるサンプル コードを使用しました。Google アカウントで承認した後、正しい更新トークンを取得します。しかし、問題は、この更新トークンが URL で返され、コントローラーから空のビューに渡されないことです。ユーザーが自分のGoogleアカウントを承認した後、コントローラーがコードの実行を待機しないように感じているため、コントローラーは await オペレーターについて気にしません。
public class GoogleAnalyticsController : SurfaceController
{
public async Task<ActionResult> Add(CancellationToken cancellationToken)
{
var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).AuthorizeAsync(cancellationToken);
if (result.Credential != null)
{
var service = new AnalyticsService(new BaseClientService.Initializer
{
HttpClientInitializer = result.Credential,
ApplicationName = "Analytics Dashboard"
});
// YOUR CODE SHOULD BE HERE..
ViewBag.AccessToken = result.Credential.Token.AccessToken;
ViewBag.RefreshToken = result.Credential.Token.RefreshToken;
var list = await service.Management.AccountSummaries.List().ExecuteAsync(cancellationToken);
ViewBag.Username = list.Username;
for (int i = 0; i < list.TotalResults; i++)
{
ViewBag.WebsiteNames += list.Items[i].Name + "(" + list.Items[i].WebProperties[0].WebsiteUrl + ")";
}
return View("~/Views/Configboard.cshtml");
}
else
{
return new RedirectResult(result.RedirectUri);
}
}
PS: Umbraco がインストールされていない ASP.NET MVC 5 プロジェクトでこのサンプル コードを試してみましたが、完全に動作します。
私を正しい方向に押し進めることができる人はいますか?