调用新浪接口几个大致步骤
首先必须有:
1.<!--微博的开放平台ApiKey
-->
<add key="ApiKey"
value="1234567890"/>
2.<!--微博开放平台ApiKeySecret-->
<add key="ApiKeySecret"
value="0aaaaaaaaaaaaaaaaaaaaaaaa"/>
一:
请求用户授权Token: https://api.weibo.com/oauth2/authorize
参数
redirect_uri 需要与申请的应用的回调地址一致(上线后只要回调地址和你的上线网站在同一个域名下就可以);
本地测试最好是将127.0.0.1:10001/ 配置成域名的形式
local.host.com/;
配置:C:\WINDOWS\system32\drivers\etc
127.0.0.1
localhost(原有的)
127.0.0.1
local.host.com(新增配置)就ok了。
二:获取Access
Token:https://api.weibo.com/oauth2/access_token
在一授权成功之后会返回code;这个code就是获取ACCESS_TOKEN的必传参数之一。
三:调用其它接口:
调用二成功之后会返回调用其它接口必须要的access_token
和当前授权用户的微博id
只要授权成功并成功得到access_token
调用其它接口就好办了,如:
1:发微博的接口:https://api.weibo.com/2/statuses/update.json
只要将微博的内容UTF-8编码(System.Web.HttpUtility.UrlEncode(WeiboContent,
System.Text.Encoding.GetEncoding("UTF-8"))),微博中如果想放个 url链接也直接放地址即可;
2:调用关注微博接口:https://api.weibo.com/2/friendships/create.json
如果当前用户已经关注了你传过去需要关注的微博id的用户,服务器就会返回400的错误(不知为什么),只需在程序中try
catch 一下就可以了
关注用户的post方法做了小改动,如果只指定方法总是返回403错误
代码:
///
<summary>
///
通过post请求指定url地址并返回结果(将参数写入网络流中)
///
</summary>
/// <param
name="url">求地址</param>
/// <param
name="nvc">参数hashtable</param>
///
<returns></returns>
public
static string RequestUrl_post(string url, Dictionary<string, string>
nvc)
{
string param = "";
foreach (string key in
nvc.Keys)
{
param += "&" + key + "=" +
nvc[key];
}
if
(param.StartsWith("&"))
param =
param.Substring(1);
byte[] bs =
Encoding.ASCII.GetBytes(param);
string str =
string.Empty;
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(url);
request.Method =
"POST";
request.MaximumAutomaticRedirections =
3;
request.Timeout = 0x2710;
request.C;
request.ContentLength =
bs.Length;
using (Stream reqStream =
request.GetRequestStream())
{
reqStream.Write(bs, 0,
bs.Length);
}
using (Stream responseStream =
((HttpWebResponse)request.GetResponse()).GetResponseStream())
{
using (StreamReader reader = new
StreamReader(responseStream))
{
str = reader.ReadToEnd();
}
}
return str;
}
原文:http://www.cnblogs.com/mhker/p/3571852.html