gpt4 book ai didi

javascript - 如何在弹出窗口中使用 Codebird PHP 发布推文

转载 作者:IT王子 更新时间:2023-10-28 23:45:58 25 4
gpt4 key购买 nike

我正在尝试允许访问我的网站的访问者直接从该网站发布带有图片的推文。我正在使用 Codebird PHP library来实现这一点。到目前为止,一切正常,但是在发布到用户帐户之前没有预览帖子。目前,它只是在他们单击按钮后直接发布到他们的帐户。

我想让它弹出一个小窗口,如果他们还没有登录,它会要求他们登录,或者它会显示推文的预览并允许他们点击“Tweet”按钮,如果他们像下图一样登录:

sample tweet popup window

这是我的 PHP:

function tweet($message,$image) {
require_once('codebird.php');
\Codebird\Codebird::setConsumerKey("MYCONSUMERKEY", "MYCONSUMERSECRET");
$cb = \Codebird\Codebird::getInstance();
session_start();

if (! isset($_SESSION['oauth_token'])) {
// get the request token
$reply = $cb->oauth_requestToken([
'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
]);

// store the token
$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
$_SESSION['oauth_verify'] = true;

// redirect to auth website
$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();

} elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) {
// verify the token
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
unset($_SESSION['oauth_verify']);

// get the access token
$reply = $cb->oauth_accessToken([
'oauth_verifier' => $_GET['oauth_verifier']
]);

// store the token (which is different from the request token!)
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;

// send to same URL, without oauth GET parameters
header('Location: ' . basename(__FILE__));
die();
}

// assign access token on each page load
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
$reply = $cb->media_upload(array(
'media' => $image
));
$mediaID = $reply->media_id_string;
$params = array(
'status' => $message,
'media_ids' => $mediaID
);
$reply = $cb->statuses_update($params);
}

tweet("Tweet tweet","assets/tweet.jpg");

这是我的 Javascript/HTML:

function postTweet() {
$.ajax({
type: "POST",
url: 'tweet.php',
data:{action:'call_this'},
success:function(html) {
alert('Success!');
}
});
}
<button class="download-share" onclick="postTweet()">Download and Share</button>

最佳答案

在单击按钮时,您需要另一个函数来打开弹出窗口以及推文按钮。

将点击事件监听器作为 postTweet 添加到新推文按钮。

我创建了一个示例片段。在下面检查。

要显示实时预览,您需要将 keyup 事件监听器添加到文本区域,它应该复制它的值并将其添加为预览 Pane 的 innerHTML .

function openTweet(){
document.getElementsByClassName("preview")[0].style.display="";
document.getElementById("tweetPr").innerHTML = document.getElementById("tweet").value;
document.getElementById("tweet").addEventListener("keyup",
function(){
document.getElementById("tweetPr").innerHTML = document.getElementById("tweet").value;
});
document.getElementsByClassName("download-share")[0].style.display="none";
}

function postTweet() {
$.ajax({
type: "POST",
url: 'tweet.php',
data:{action:'call_this'},
success:function(html) {
alert('Success!');
}
});
}
<div style="display:none;" class="preview"><textarea id="tweet"> </textarea><div id="tweetPr"></div><button onclick="postTweet();">Tweet</button></div>
<button class="download-share" onclick="openTweet()">Download and Share</button>

关于javascript - 如何在弹出窗口中使用 Codebird PHP 发布推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331769/

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