ПОМОЩЬ!
Я пытаюсь обновить программу, чтобы поддерживать новую версию, которую Google использует в AdWords.
Используя мой сайт, я могу создать accessToken и accessTokenSecret для своих пользователей и сохранить его в своей базе данных.КАК ОАЙТ И МЫЛО?
Моя проблема в том, что я пытаюсь сделать запрос на мыло позже с этими учетными данными.
- Какую информацию мне нужно сэкономить на сайте? пока я сохраняю только accessToken и accessTokenSecret. есть ли еще что-нибудь?
- Как использовать accessToken, accessTokenSecret и что еще я сохранил, чтобы сделать SOAP-запросы? (пожалуйста, будьте как «низкий уровень», как можете, «просто используйте их в заголовке запроса» мне не поможет).
Некоторая информация о моем процессе:
- Не с помощью клиентской библиотеки из Google (слишком много над головой, и до сих пор я не нуждался в них).
- Использование автогенерированного SOAP-кода с использованием VS2005 WSDL для служб, которые я использую.
- C# код.
Любая помощь будет высоко оценена.
Спасибо!
==================================================================================================================== ======================================= 0 0 следующим образом:
protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest request = base.GetWebRequest(uri);
String token = "XXXXXXXXXXX";//a valid token - changed for here.
String secret = "XXXXXXXXXXXX";//a valid secret - changed for here.
String consumerKey = "anonymous";
String consumerSecret = "anonymous";
String sigMet = "HMAC-SHA1";
String oauth_timestamp = ((DateTime.UtcNow.Ticks - new DateTime(1970, 1, 1).Ticks)/(1000 * 10000)).ToString();
String oauth_nonce = Guid.NewGuid().ToString();
Parameter[] paramArray = new Parameter[]{
new Parameter("oauth_consumer_key", consumerKey),
new Parameter("oauth_token", token),
new Parameter ("oauth_signature_method", sigMet),
new Parameter ("oauth_timestamp", oauth_timestamp),
new Parameter ("oauth_nonce", oauth_nonce)
};
String oauth_signature = CreateHMACSHA1Signature(
request.Method,
uri,
paramArray,
consumerSecret,
secret
);
request.Headers.Add(
"Authorization: OAuth " +
"realm=\"" + "https://www.google.com/" + "\"," +
"oauth_consumer_key=\"" + Parameter.EncodeParameterString(consumerKey) + "\"," +
"oauth_token=\"" + Parameter.EncodeParameterString(token) + "\"," +
"oauth_signature_method=\"" + Parameter.EncodeParameterString(sigMet) + "\"," +
"oauth_signature=\"" + Parameter.EncodeParameterString(oauth_signature) + "\"," +
"oauth_timestamp=\"" + Parameter.EncodeParameterString(oauth_timestamp) + "\"," +
"oauth_nonce=\"" + Parameter.EncodeParameterString(oauth_nonce) + "\""
);
return request;
}
функция CreateHMACSHA1Signature
такая же, один используется для с OAuthGetRequestToken
и OAuthAuthorizeToken
просто отлично. но при использовании с SOAP я получаю следующее сообщение об ошибке:
System.Web.Services.Protocols.SoapException: AuthenticationError.OAUTH_TOKEN_HEADER_INVALID @ Service [ServicedAccountService.get]
Любая идея, почему это?
собирается над «http://code.google.com/p/google-api-adwords- dotnet/wiki/NoClientLibrary «Я вижу, что там так много объяснений. если бы только могло быть объяснение того, как создать «oAuth», как они объясняют, как создать «AuthToken», каждая вещь была потрясающей. –
Эй, беря ваш совет, я, кажется, могу добавить свою просьбу к просьбе. но я получаю ошибку OAUTH_TOKEN_HEADER_INVALID, и я не могу понять, почему. есть идея? Благодаря ! –
Я сейчас в отпуске, но я добавлю версию NoClientLibrary OAuth, когда вернусь из отпуска. –