我想使用响应中的ID并将其嵌入到页面中。
我假设我需要使用一个foreach循环并遍历JSON,然后将每个ID传递给实际进行嵌入的代码段。
我发现的代码here使用javascript进行了嵌入。当对推特ID进行硬编码时,此代码可以正常工作。我需要传递从响应中获得的每个ID,并且无法弄清楚如何将我的php数组传递给javascript代码。
<?php
//using a open sourced php library to complete the API call
require_once('TwitterAPIExchange.php')
$settings = array(
'oauth_access_token' => "my_token",
'oauth_access_token_secret' => "my_token_secret",
'consumer_key' => "my_key"
'consumer_secret' => "my_key_secret"
)
$url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
$requestMethod = "GET";
if (isset($_GET['user'])) {$user = preg_replace("/[^A-Za-z0-9_]/", '', $_GET['user']);} else {$user = "son_mi";}
$getfield = "?screen_name=$user&count=$count";
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(),$assoc = TRUE);
if(array_key_exists("errors", $string)) {echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error message:</p><p><em>".$string[errors][0]["message"]."</em></p>";exit();}
?>
<style>
#tweet {
width: 400px !important;
}
#tweet iframe {
border: none !important;
box-shadow: none !important;
}
</style>
<div id="tweet" tweetID="515490786800963584"></div>
<script sync src="https://platform.twitter.com/widgets.js"></script>
<script>
window.onload = (function(){
var tweet = document.getElementById("tweet");
var id = tweet.getAttribute("tweetID");
twttr.widgets.createTweet(
id, tweet,
{
conversation : 'none;,
cards : 'hidden',
linkColor : '#cc0000',
theme : 'light'
})
.then (function (el) {
el.contentDocument.querySelector(".footer").style.display = "none";
});
});
</script>
也可以在here中找到该代码。
此处的ID在哪里:
<div id="tweet" tweetID="515490786800963584"></div>
我尝试删除此行:
<div id="tweet" tweetID="515490786800963584"></div>
然后在脚本中:
<script sync src="https://platform.twitter.com/widgets.js"></script>
<script>
window.onload = (function(){
<?php foreach ($string as $item_tweets)?>
{
var tweet = document.getElementById("<$php echo $item_tweets?>");
var id = tweet.getAttribute("<?php echo $item_tweets.['id']?>");
twttr.widgets.createTweet(
id, tweet,
{
conversation : 'none',
cards : 'hidden',
linkColor : '#cc0000',
theme : 'light'
})
.then (function (el) {
el.contentDocument.querySelector(".footer").style.display = "none";
});
}
});
此代码不起作用,我不确定是否是因为将PHP foreach放入标签内的方式根本上有问题,或者我只是实现了错误的迭代。