添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

免费雅虎天气应用创建,获取授权key:
https://developer.yahoo.com/apps/create/

如果没账号,注册一个,简单用邮箱就可以注册了,我用的qq邮箱注册的。

非常简单,如下图,我就输入了个 Application Name 和 Description 还有 Homepage Url 然后点击 Create App 立刻就创建好了
在这里插入图片描述
注意 Homepage URL Redirect URL 填写你的浏览器打开后默认的首页地址即可,比如我的这里 填写的 https://hao.360.com/?a1004

让人无语的是,我在国内外网上搜了n多的 yahoo weather Homepage URL 怎么填写的,硬是没有找到一个明确说怎么填的。所以我才写了这篇文章。

App ID, Client ID, Client Secret

点击 Create App 后,如果成功了立即就可以看到 App ID, Client ID, Client Secret 信息了,如下图:
在这里插入图片描述

雅虎天气api开发文档

yahoo weather API Documentation

https://developer.yahoo.com/weather/documentation.html

Java Demo

https://blog.csdn.net/qq1594443513/article/details/108770757?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
 

对官方文档的demo做了一些小修改,因为官方文档使用的是jdk11,我使用的是jdk1.8,有些方法没有所以使用了org.apache.http.impl.client.CloseableHttpClient;模拟http请求。

简单的java demo源码 (能正常跑起来,可能需要梯子

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.*;
import java.util.Base64.Encoder;
import java.net.URLEncoder;
import java.net.URI;
public class Test {
    public static void main(String[] args) throws Exception {
        final String appId = "test-app-id";
        final String consumerKey = "your-consumer-key";
        final String consumerSecret = "your-consumer-secret";
        final String url = "https://weather-ydn-yql.media.yahoo.com/forecastrss";
        long timestamp = new Date().getTime() / 1000;
        byte[] nonce = new byte[32];
        Random rand = new Random();
        rand.nextBytes(nonce);
        String oauthNonce = new String(nonce).replaceAll("\\W", "");
        List<String> parameters = new ArrayList<>();
        parameters.add("oauth_consumer_key=" + consumerKey);
        parameters.add("oauth_nonce=" + oauthNonce);
        parameters.add("oauth_signature_method=HMAC-SHA1");
        parameters.add("oauth_timestamp=" + timestamp);
        parameters.add("oauth_version=1.0");
        // Make sure value is encoded
        parameters.add("location=" + URLEncoder.encode("sunnyvale,ca", "UTF-8"));
        parameters.add("format=json");
        Collections.sort(parameters);
        StringBuffer parametersList = new StringBuffer();
        for (int i = 0; i < parameters.size(); i++) {
            parametersList.append(((i > 0) ? "&" : "") + parameters.get(i));
        String signatureString = "GET&" +
                URLEncoder.encode(url, "UTF-8") + "&" +
                URLEncoder.encode(parametersList.toString(), "UTF-8");
        String signature = null;
        try {
            SecretKeySpec signingKey = new SecretKeySpec((consumerSecret + "&").getBytes(), "HmacSHA1");
            Mac mac = Mac.getInstance("HmacSHA1");
            mac.init(signingKey);
            byte[] rawHMAC = mac.doFinal(signatureString.getBytes());
            Encoder encoder = Base64.getEncoder();
            signature = encoder.encodeToString(rawHMAC);
        } catch (Exception e) {
            System.err.println("Unable to append signature");
            System.exit(0);
        String authorizationLine = "OAuth " +
                "oauth_consumer_key=\"" + consumerKey + "\", " +
                "oauth_nonce=\"" + oauthNonce + "\", " +
                "oauth_timestamp=\"" + timestamp + "\", " +
                "oauth_signature_method=\"HMAC-SHA1\", " +
                "oauth_signature=\"" + signature + "\", " +
                "oauth_version=\"1.0\"";
        // 定义一个CloseableHttpClient
        CloseableHttpClient client = HttpClientBuilder.create().build();
        // 定义响应接收对象
        CloseableHttpResponse request;
        HttpGet httpGet = new HttpGet(URI.create(url + "?location=sunnyvale,ca&format=json"));
        httpGet.addHeader("Authorization", authorizationLine);
        httpGet.addHeader("X-Yahoo-App-Id", appId);
        httpGet.addHeader("Content-Type", "application/json");
        request=client.execute(httpGet);
        // 获取查询结果
        HttpEntity requestponseEntity = request.getEntity();
        System.out.println("Response content: " + EntityUtils.toString(requestponseEntity));

上面代码 替换自己的 appid key 和 Secret ,运行后结果如下:

{"location":{"city":"Sunnyvale","region":" CA","woeid":2502265,"country":"United States","lat":37.371609,"long":-122.038254,"timezone_id":"America/Los_Angeles"},"current_observation":{"wind":{"chill":57,"direction":345,"speed":4.35},"atmosphere":{"humidity":53,"visibility":10.0,"pressure":30.06,"rising":0},"astronomy":{"sunrise":"7:16 am","sunset":"4:52 pm"},"condition":{"text":"Mostly Cloudy","code":28,"temperature":57},"pubDate":1608073200},"forecasts":[{"day":"Tue","date":1608019200,"low":42,"high":58,"text":"Partly Cloudy","code":30},{"day":"Wed","date":1608105600,"low":41,"high":59,"text":"Mostly Cloudy","code":28},{"day":"Thu","date":1608192000,"low":45,"high":56,"text":"Rain","code":12},{"day":"Fri","date":1608278400,"low":38,"high":57,"text":"Mostly Sunny","code":34},{"day":"Sat","date":1608364800,"low":40,"high":57,"text":"Mostly Sunny","code":34},{"day":"Sun","date":1608451200,"low":39,"high":57,"text":"Mostly Sunny","code":34},{"day":"Mon","date":1608537600,"low":42,"high":58,"text":"Mostly Sunny","code":34},{"day":"Tue","date":1608624000,"low":42,"high":58,"text":"Partly Cloudy","code":30},{"day":"Wed","date":1608710400,"low":41,"high":58,"text":"Partly Cloudy","code":30},{"day":"Thu","date":1608796800,"low":40,"high":59,"text":"Mostly Sunny","code":34}]}

代码中用到的maven依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.41</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.9</version>
        </dependency>
                    (国内网可能访问不了,可能需要梯子)官网免费雅虎天气应用创建,获取授权key:https://developer.yahoo.com/apps/create/如果没账号,注册一个,简单用邮箱就可以注册了,我用的qq邮箱注册的。创建应用非常简单,如下图,我就输入了个 Application Name 和 Description 还有 Homepage Url 然后点击 Create App 立刻就创建好了注意:Homepage URL 和 Redirect URL 填写你的浏览器打开后默认的首
之前一直用的valine评论系统,也魔改了很多,but最近有通过appid和appkey恶意刷评论的脚本,不知道我的小小站得罪了哪位“dalao”,总之,valine不能用了,也有人推荐了好几个评论系统,一直懒于动刀,今天算是不太忙(工作摸鱼),也是无意间看到gitalk,算是眼缘吧,安装试试。
前提:你有github账号、hexo博客,没有的话度娘创建。
1.注册应用
在github上,这个地址注册一个评论的应用:R
    <add-resource type="array" name="bookmark_url"></add-resource>
    <string-array name="bookmark_url">
        <item>Google</item&g
				
    Spring cloud各个微服务使用过程中,通过Eureka进行服务的注册与发现。ZUUL网管及服务间请求调用,默认都是通过Eureka进行。     服务间请求处理过程,一般是通过服务名,到Eureka中获取实际的服务请求地址,然后根据实际地址进行HTTP请求。     默认情况下,通过服务名到Eureka获取服务所在地址一般是如下构成的:     http://${eureka...
#set dirs set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR}) message("project dir:${PROJECT_ROOT}")
Github 第三方授权登录教程大致流程图1.首先注册一个github帐号,Applications>Developer applications>Register a new application. 2.填入参数 Application name--应用名称,随意填 Homepage URL--如上图可以填本地地址进行测试,127.0.0.1:port/xx/xx Application de
基于Github的OAuth2.0协议的单点登录 项目开发过程中,多个子系统需要集成统一认证平台,统一登录,说白了就是第三方登录。当下第三方登录最流行的协议是OAuth2.0。如:微信开放平台,支付宝开放平台,QQ开放平台,Github开放平台等,都提供了第三方登录的功能,现提供一个demo,供码友们参考。 Github单点登录的流程 流程地址 https://developer.github.com/apps/building-oauth-apps/ 按照流程操作即可,只不过全程是英文,有些不便。
1、为什么使用Eureka?  在Spring Cloud中我们经常使用Eureka,是因为SpringCloud对Eureka支持力度非常大 ,Eureka的社区活跃多较高,版本更新的速度快。 Eureka简介: Eureka是Netflix开发的服务发现组件,能够实现服务注册、注销、健康检查,服务发现等功能,它本身是基于Restful API服务的,用来达到负载均衡和中间层服务故障转移的...
gitalk与hexo博客系统的使用 最近在使用 hexo部署博客系统,评论插件有不少,但是真正令人满意的还是不多。最开始用的畅言,但是其烦人的广告弹窗让渴望解决bug问题的小伙伴怒火中烧,去广告每个月也是一笔不少的花费,因此果断抛弃,选择拥抱gitalk,而且只能使用GitHub账号评论,评论区也会清净不少。 在hexo使用gitalk也是非常简单的,因为各大hexo主题都内置了gitalk的配置,因此简单
1. 地理信息系统(GIS)技术:通过整合地图数据和空间数据,对地理信息进行分析和展示。 2. 全球卫星定位系统(GPS)技术:通过卫星信号来确定地理位置,提供准确的地图定位服务。 3. 三维可视化技术:通过虚拟现实技术,将地图呈现为真实的三维模型。 4. 数据挖掘技术:通过分析和挖掘海量数据,提供更精准的地图信息和服务。 5. 人工智能技术:通过机器学习和深度学习等技术,实现地图数据的自动化处理和分析。 总之,雅虎地图采用了多种技术,以提供更精准、更全面、更便捷的地图服务。
Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 解决 136591 docker启动失败报错:Failed to start docker.service: Unit is not loaded properly: Invalid argument,卸载重装报同样错 35508
docker私有仓库外网上传镜像失败,添加了insecure-registries没用,报connection refused或Timeout exceeded while awaiting hea 君君百分百: 这么操作了,还是默认走https,大佬该怎么弄 accessToken refreshToken简单使用源码demo,双token刷新及有效时间设置 真是无聊啊: refreshToken需要前端请求接口才能刷新accesstoken,不能后端自己根据accesstoken是否过期独立判断和更新吗? dell window10 关闭屏幕亮度自动变化. 亲测有效 404 not found308: 这什么呀,根本就没有用。 docker启动失败报错:Failed to start docker.service: Unit is not loaded properly: Invalid argument,卸载重装报同样错 你这个进程已经dead了,docker配置文件废了 docker启动失败报错:Failed to start docker.service: Unit is not loaded properly: Invalid argument,卸载重装报同样错 这个不治本吧,docker.service里面的配置错了,看原型,改一下即可,超简单的。