调用新浪接口几个大致步骤
首先必须有:
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:WINDOWSsystem32driversetc
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;
}