0

私の新しいプロジェクトでは、OpenAuth の実装が必要です。以下は私のコードです。

この線

scopes.Add(CalendarService.Scopes.Calendar.GetStringValue())

GetAuthorization で次のエラーが発生します。

アクセスできないため、オーバーロードの解決に失敗しました...

GetStringValue は、これらの引数に対して最も具体的です。GetStringValue が calendarservice.scopes.calendar にあるメソッド/引数ではないことは理解できますが、私の質問はなぜそうなのですか? このコードをいくつかの Web サイトからダウンロードしましたが、ほとんどの Web サイトは C# で例を示していますが、VB.Net で例を示しているサイトはほとんどありません。誰でもここで私を助けることができますか?

よろしく

PS私はVisual Studio 2008を使用しています。

Imports System
Imports System.Diagnostics
Imports DotNetOpenAuth.OAuth2
Imports Google.Apis.Authentication.OAuth2
Imports Google.Apis.Authentication.OAuth2.DotNetOpenAuth
Imports Google.Apis.Calendar.v3
Imports Google.Apis.Util
Imports Google.Apis.Calendar.v3.Data
Imports Google.Apis.Tasks.v1
Imports Google.Apis.Tasks.v1.Data

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim provider = New NativeApplicationClient(GoogleAuthenticationServer.Description)
        provider.ClientIdentifier = "Client ID Here"
        provider.ClientSecret = "Client Secret Here"
        Dim auth = New OAuth2Authenticator(Of NativeApplicationClient)(provider, AddressOf GetAuthorization)

        Dim service = New CalendarService(auth)
        Dim first = service.CalendarList.List.Fetch().Items().First()

        Label1.Text = first.Summary

    End Sub

    Private Function GetAuthorization(ByVal arg As NativeApplicationClient) As IAuthorizationState

        Dim scopes As New System.Collections.Generic.List(Of String)

        scopes.Add(CalendarService.Scopes.Calendar.GetStringValue())

        Dim state As IAuthorizationState = New AuthorizationState(scopes)
        state.Callback = New Uri(NativeApplicationClient.OutOfBandCallbackUrl)
        Dim authUri As Uri = arg.RequestUserAuthorization(state)

        Process.Start(authUri.ToString())

        ' Open a modal dialogue for user to paste the authorization code from Browser = authCode 
        Dim authCode As String = Console.ReadLine()
        Return arg.ProcessUserAuthorization(authCode, state)

    End Function
End Class
4

1 に答える 1

0

GetStringValue は、Google.Api.Util.Utilities で定義されている拡張メソッドです。

これと同様のVB.NETコードが、最新バージョンのライブラリを使用してVS2012で機能しました。私の VB.NET サンプルはhttps://codereview.appspot.com/7007048/にありますが、まだ承認されていないので、注意して使用してください。

サンプル リポジトリ ( http://code.google.com/p/google-api-dotnet-client/source/browse/?repo=samples#hg%2FDiscovery.VB.ListAPIs ) には、現在 VB が 1 つしかありません。 NET サンプルですが、上記のサンプルがすぐに承認され、リポジトリに追加されることを願っています。

プロジェクト内の参照とスタック トレースについて詳しく説明してください。コードまたは参照アセンブリで、この GetStringValue への別のオーバーロードがあるようです ( http://msdn.microsoft.com/en-us/library/2hx4ayzs(v=vs.80).aspx )。

于 2013-02-14T04:58:48.973 に答える