• 调用新浪接口记录


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

  • 相关阅读:
    [转载]备忘:oh my zsh 的安装、更新、删除
    【转载】fedora22和win10之间的文件共享互访
    python3.7[列表] 索引切片
    注册科创版 等待生效中 测评 投资
    谷歌镜像-20190627
    debian静态地址网络配置方法
    latex高速新手教程
    Java知识点解析
    【Linux 操作系统】Ubuntu 配置 ftp freemind adb
    vs2012设置默认的全局include和lib
  • 原文地址:https://www.cnblogs.com/mhker/p/3571852.html
Copyright © 2020-2023  润新知