0

Google Shortener URL API https://developers.google.com/url-shortener/v1/getting_startedを使用しようとしていますが、C# ライブラリ Google.Apis.Urlshortener.v1 を使用すると大きな問題に直面しています。OAUTH2.0 認証を使用して短縮 URL を取得するために、URL で「挿入」を呼び出そうとしています。有効な更新トークンとオーセンティケーターを正常に取得しましたが、関数の実行時に何か不足しているようです。この作品を作った人がいることを願っています。

コード:

var init = new BaseClientService.Initializer();
init.Authenticator = _authenticator; 
//init.ApiKey = ApiKey;
var urlService = new UrlshortenerService(init);
var shortUrl = urlService.Url.Insert(new Url { LongUrl = url }).Execute().Id; // fails...

スタックトレース:

<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Method 'get_ServiceParameters' in type 'Google.Apis.Urlshortener.v1.UrlshortenerService' from assembly 'Google.Apis.Urlshortener.v1, Version=1.5.0.18, Culture=neutral, PublicKeyToken=null' does not have an implementation.
</ExceptionMessage>
<ExceptionType>System.TypeLoadException</ExceptionType>
<StackTrace>
at DoguApi.Controllers.UrlShortenerController.GetShortenedUrl(String url) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4() at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)
</StackTrace>
</Error>
4

1 に答える 1

0

簡単な回答: ソリューション内のすべてのプロジェクトで参照されているすべての Google.Apis 'DLL ファイルを同じバージョンに更新します。

長い回答: 私の問題は、ソリューションに 2 つのプロジェクトがあり、1 つは Google.Apis v.1.4.0 を含み、もう 1 つは Google.Apis v.1.5.0 を含むことでした。Google.Apis v.1.4.0 を使用したものは REST API を介して他のプロジェクトを提供していたため、コンパイル時にエラーは見つかりませんでした。両方を最新バージョンに更新することで、エラーは解決しました。

于 2013-09-09T08:18:31.167 に答える