usando TwitPic + OAuth para carregar uma foto + tweet no Twitter (.NET C #) - por que não tweetar?

Estou carregando fotos no TwitPic, usandoOAuth, de um aplicativo .NET escrito em C #.

O material oAuth é um pouco complicado. Encontrei dois bits do código .NET para lidar com isso, mas também não estava satisfeito.DotNetOpenAuth parecia ser bastante pesado, mais do que eu preciso. (Só quero fazer assinaturas oAuth e solicitações de token). oOAuthBase.cs código parecia confuso e deselegante para mim. Eu tive que passar 6 parâmetros de string para métodos, e se eu tiver algum problema, ai de mim.

Então, eu escrevi um código para fazer isso sozinho, é bastante pequeno e parece funcionar. Ele trabalha para adquirir "tokens de solicitação". Ele funciona para exibir a página da web autorizada e adquirir "tokens de acesso". Também funciona para enviar fotos para o TwitPic.

Todas as respostas HTTP retornam como 200 ou 201.

ocarregar mensagem HTTP se parece com isso:

POST http://api.twitpic.com/2/upload.json HTTP/1.1
Content-Type: multipart/form-data; boundary=48cb9a6d-1f1d-432d-b6e3-307e32e8228a
X-Auth-Service-Provider: https://api.twitter.com/1/account/verify_credentials.json
X-Verify-Credentials-Authorization: OAuth realm="http://api.twitter.com/",
  oauth_consumer_key="Dv1er93yKzEMn74hZfPmJA",
  oauth_nonce="51fi305k",
  oauth_signature="4oWcmZcd%2F%2F81JslJ70xFXFm8%2BQs%3D",
  oauth_signature_method="HMAC-SHA1",
  oauth_timestamp="1292277715",
  oauth_token="59152613-z8EP4GoYS1Mgo3E29JfIqBnyTRlruAJs8Bkvs3q0T",
  oauth_version="1.0"
Host: api.twitpic.com
Content-Length: 14605
Expect: 100-continue
Connection: Keep-Alive

--48cb9a6d-1f1d-432d-b6e3-307e32e8228a
Content-Disposition: file; name="media"; filename="CropperCapture[10].jpg"
Content-Type: image/jpeg
....
--48cb9a6d-1f1d-432d-b6e3-307e32e8228a
Content-Disposition: form-data; name="key"

twitpic-api-key-here
--48cb9a6d-1f1d-432d-b6e3-307e32e8228a
Content-Disposition: form-data; name="message"

uploaded from Yappy. (at 12/13/2010 5:01:55 PM)
--48cb9a6d-1f1d-432d-b6e3-307e32e8228a--

O json que eu volto do upload é assim:

{"id":"3f0jeiw5",
 "text":"uploaded from Yappy. (at 12\/13\/2010 5:01:55 PM)",
 "url":"http:\\/twitpic.com\/3f0jeiw5",
 "width":257,
 "height":184,
 "size":14156,
 "type":"jpg",
 "timestamp":"Mon, 13 Dec 2010 22:02:06 +0000",
 "user":{
   "id":54591561,"screen_name":"bfavre"}
}

Mas o problema é que, depois de carregar a imagem no Twitpic, a imagem fica disponível no TwitPic, mas a mensagem associada nunca aparece no Twitter.

O que da?

Eu li emuma postagem aleatória no blog que o uso do TwitPic + oAuth exige que eu publique a mensagem do tweet em uma transação HTTP separada, diretamente no Twitter. Hã? Eu pensei que o objetivo do oAuth por email era permitir que os consumidores fizessem coisas em meu nome - como permitir que o TwitPic publicasse um tweet para mim.

Alguma dica?

EDITAR
Estou aprendendo um pouco mais aqui.Esta postagem no blog maio de 2010 sugere que usar um valor paraX-Auth-Service-Provider dohttps://api.twitter.com/1/account/verify_credentials.json diz ao TwitPic para ligar para "confirm_credentials.json" no twitter.com quando receber minha solicitação. Se realmente estiver apenas verificando minhas credenciais, isso explicaria por que nenhum Tweet é postado.

O post também sugere que trocar isso e substituí-lo porhttps://api.twitter.com/1/status/update.json devemos permita-me atualizar o Twitter via TwitPic com delegação. Mas é uma publicação voltada para o futuro - diz que obter esse recurso requer trabalho da parte do Twitter.

Ainda não encontrei um exemplo de mensagem HTTP que faça isso. Qualquer um?

ATUALIZAR
Depois de converter o URL de verificação emhttps://api.twitter.com/1/status/update.json e usando o POST para a assinatura, recebo um código de resposta 401:

{"errors":
  [{"code":401,
    "message":"Could not authenticate you (header rejected by twitter)."}]
}

Este é basicamente o mesmo problema descritoaqui, no twitter dev forum. A sugestão no final desse encadeamento era que o algoritmo de computação de assinatura está errado, mas acho que está incorreto, pois meu algoritmo sig funciona com todos os outros pedidos.

questionAnswers(2)

yourAnswerToTheQuestion