小编Ord*_*man的帖子

使用OAuth2的Yahoo Fantasy Sports示例

我想构建一个应用程序来查询Yahoo!中的数据。幻想联盟,但无法通过三足式OAuth身份验证,希望有人可以给我快速演示,或为我提供相关教程。

我愿意使用NodeJS,Python或PHP。

我已经注册了一个API,并获得了“消费者密钥”和“消费者秘密”。

他们的文档包含两个PHP示例(我无法使用),并引用了OAuth.net的库列表

但是,让我们以Python为例。该rauth文档只列出的第一站,我怎么完成其他2条腿?

from rauth import OAuth2Service

yahoo = OAuth2Service(  
client_id='mykey',
client_secret='mysecret',
name='yahoo',
authorize_url='https://api.login.yahoo.com/oauth/v2/request_auth',
access_token_url='https://api.login.yahoo.com/oauth/v2/get_token',
base_url='https://api.login.yahoo.com/oauth/v2/')

url = yahoo.get_authorize_url()
Run Code Online (Sandbox Code Playgroud)

尽管yahoofantasysandbox似乎已经存在了,但我在GitHub.com上发现的几乎所有示例都存在很长时间,并且存在兼容性问题。

本教程推荐使用幻想运动,但我没有看到很多有关实现或示例的细节。

有人可以为此指出正确的方向,还是可以给我演示工作代码?

php node.js oauth-2.0 yahoo-api

7
推荐指数
1
解决办法
850
查看次数

Twitter跟踪像素导致MIME类型错误

我正在尝试在我的Meteor/NodeJS网站上加载Twitter的跟踪像素.

他们提供的代码是:

!(function(e, t, n, s, u, a) {
    e.twq ||
        ((s = e.twq = function() {
            s.exe ? s.exe.apply(s, arguments) : s.queue.push(arguments);
        }),
        (s.version = "1.1"),
        (s.queue = []),
        (u = t.createElement(n)),
        (u.async = !0),
        (u.src = "//static.ads-twitter.com/uwt.js"),
        (document.body.appendChild(u)));
   })(window, document, "script");

twq("init", "MY-TRACKING-ID");
twq("track", "PageView");
Run Code Online (Sandbox Code Playgroud)

它加载正常,但在控制台中返回以下错误:

拒绝执行' https://analytics.twitter.com/i/adsct?p_id=Twitter ...'中的脚本,因为其MIME类型('text/html')不可执行,并且启用了严格的MIME类型检查.

这是完全相同的问题:https://twittercommunity.com/t/analytics-tracking-pixel-error-was-blocked-due-to-mime-type-mismatch-x-content-type-options-nosniff/ 83583/2,但是当该线程未解决时,他现在正在该网站上运行Twitter跟踪像素,这表明这是一个服务器配置问题.

查看代码,来自Twitter的这个uwt.js文件请求来自https://analytics.twitter.com/i/adsct的脚本,Chrome阻止其运行.

这个答案表明它是MIME类型配置问题(我正在运行Nginx)或标题问题,但删除X-Content-Type-Options: nosniff和重新启动Nginx没有任何效果.

知道如何修复或更好地排除故障吗?

javascript twitter nginx

6
推荐指数
1
解决办法
2566
查看次数

在IE和Chrome中动态加载jQuery

我正在创建一个使用jQuery的外部窗口小部件,而不是让用户单独包含它我想检查它是否已加载并动态加载它(如果不是).

问题是我需要等到它被加载以执行脚本的其余部分,这需要IE和FF/Chrome处理不同的事件处理程序.

如果我这样做,它在IE8中工作正常:

<div id="test">
<p>This is a test.</p>
</div>

<script>
if (typeof jQuery == 'undefined') {
    s = document.createElement("script");
    s.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
    if (s.addEventListener) {
        s.addEventListener("load", runScript, false);
    } else if (s.readyState) {
        s.onreadystatechange = runScript;
    }

} else {
    runScript();
}

function runScript() {
    document.getElementsByTagName('head')[0].appendChild(s);
    $('#test').css('font-size', '50px');

}
</script>
Run Code Online (Sandbox Code Playgroud)

但这在Chrome中无效.但是,如果我先添加脚本,它可以在Chrome中使用,但不适用于IE:

<div id="test">
<p>This is a test.</p>
</div>

<script>
if (typeof jQuery == 'undefined') {
    s = document.createElement("script");
    s.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
    document.getElementsByTagName('head')[0].appendChild(s);
    if (s.addEventListener) {
        s.addEventListener("load", runScript, false);
    } …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery internet-explorer google-chrome

5
推荐指数
1
解决办法
1544
查看次数

在C++中使用范围运算符无效

我正在尝试手动将一些Java移植到C++中.

Java:

public Class Item {
    public String storage = "";
    public Item(String s, int tag) { storage = s; }
    ...
}

public class ProcessItems {
    Hashtable groups = new Hashtable();
    void save(Item w) { groups.put(w.storage, w); }
}
Run Code Online (Sandbox Code Playgroud)

我的C++:

#include<iostream>
#include<unordered_map>
#include<string>


class Item {
    public:
        std::string storage;
        Item(std::string s, int tag) { storage = s; }
        ...
}

class ProcessItems {
    public:
        std::unordered_map<std::string, std::string> *groups = new std::unordered_map<std::string, std::string>();
        void save(Item w) { groups.insert(w::storage, w); }
        ... …
Run Code Online (Sandbox Code Playgroud)

c++ java unordered-map

1
推荐指数
1
解决办法
125
查看次数