gpt4 book ai didi

javascript - Codebird JS 中的 Twitter 身份验证

转载 作者:可可西里 更新时间:2023-11-01 02:46:33 26 4
gpt4 key购买 nike

我对将社交网站集成到网站中还很陌生。我有点设法整合 Facebook,但我不知道如何整合 Twitter。

我想通过 Twitter 帐户登录,然后从 Twitter 获取用户名和其他一些数据。我有一个消费者 key 和消费者 secret 。我不确定如何从这里开始,到目前为止我的 Google 搜索没有任何帮助。

我正在尝试使用 codebird js:

$(function() {
$('#twitter').click(function(e) {
e.preventDefault();
var cb = new Codebird;
cb.setConsumerKey("redacted", "redacted");
cb.__call(
"oauth_requestToken",
{ oauth_callback: "http://127.0.0.1:49479/" },
function (reply, rate, err) {
if (err) {
console.log("error response or timeout exceeded" + err.error);
}
if (reply) {
// stores it
cb.setToken(reply.oauth_token, reply.oauth_token_secret);

// gets the authorize screen URL
cb.__call(
"oauth_authorize",
{},
function (auth_url) {
window.codebird_auth = window.open(auth_url);
}
);
}
}
);
cb.__call(
"account_verifyCredentials",
{},
function(reply) {
console.log(reply);
}
);
})
});

但是我明白了

Your credentials do not allow access to this resource

如何解决这个问题并获取用户数据?我愿意使用替代的 Twitter 实现。

最佳答案

你不能在那里调用 cb._call( "account_verifyCredentials"...

该代码只有一个请求 token ,而不是访问 token ,只有在用户授权您的应用程序(在 Twitter 身份验证弹出窗口上)后,您才会收到它。

您正在使用“不带 PIN 的回调 URL”方法,如 documented on the README.因此,您需要在 http://127.0.0.1:49479/ 页面上实现该示例代码。

此外,这本质上要求您将 oauth 凭据存储在某处。在下面的示例中,我使用了 localStorage

$(function () {
$('#twitter').click(function (e) {
e.preventDefault();
var cb = new Codebird;
cb.setConsumerKey("CeDhZjVa0d8W02gWuflPWQmmo", "YO4RI2UoinJ95sonHGnxtYt4XFtlAhIEyt89oJ8ZajClOyZhka");

var oauth_token = localStorage.getItem("oauth_token");
var oauth_token_secret = localStorage.getItem("oauth_token_secret");
if (oauth_token && oauth_token_secret) {
cb.setToken(oauth_token, oauth_token_secret);
} else {
cb.__call(
"oauth_requestToken", {
oauth_callback: "http://127.0.0.1:49479/"
},
function (reply, rate, err) {
if (err) {
console.log("error response or timeout exceeded" + err.error);
}
if (reply) {
console.log("reply", reply)
// stores it
cb.setToken(reply.oauth_token, reply.oauth_token_secret);

// save the token for the redirect (after user authorizes)
// we'll want to compare these values
localStorage.setItem("oauth_token", reply.oauth_token);
localStorage.setItem("oauth_token_secret", reply.oauth_token_secret);

// gets the authorize screen URL
cb.__call(
"oauth_authorize", {},
function (auth_url) {
console.log("auth_url", auth_url);
// JSFiddle doesn't open windows:
// window.open(auth_url);
$("#authorize").attr("href", auth_url);

// after user authorizes, user will be redirected to
// http://127.0.0.1:49479/?oauth_token=[some_token]&oauth_verifier=[some_verifier]
// then follow this section for coding that page:
// https://github.com/jublonet/codebird-js#authenticating-using-a-callback-url-without-pin
});
}
});
}
})
});

还做了一个JSFiddle

关于javascript - Codebird JS 中的 Twitter 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33840011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com