Twitter Oauth home timeline display with php - php

$hometime= $Twitter->get_statusesHome_timeline();
Fatal error: Uncaught exception 'Exception' with message 'SimpleXMLElement::__construct() expects parameter 1 to be string
<?php
include 'EpiCurl.php';
include 'EpiOAuth.php';
include 'EpiTwitter.php';
include 'key.php';
$Twitter = new EpiTwitter($consumerKey, $consumerSecret);
$oauthToken='xxxxxxxxxxxxxxxxxxxxxxx';
$oauthSecret='xxxxxxxxxxxxxxxxxxxxxxxxx';
// user switched pages and came back or got here directly, stilled logged in
$Twitter->setToken($oauthToken,$oauthSecret);
$user= $Twitter->get_accountVerify_credentials();
echo "<img src=\"{$user->profile_image_url}\">";
echo "{$user->name}";
$hometime= $Twitter->get_statusesHome_timeline();
$twitter_status = new SimpleXMLElement($hometime);
foreach($twitter_status->status as $status){
echo '<div class="twitter_status">';
foreach($status->user as $user){
echo '<img src="'.$user->profile_image_url.'" class="twitter_image">';
echo ''.$user->name.': ';
}
echo $status->text;
echo '<br/>';
echo '<div class="twitter_posted_at"><strong>Posted at:</strong> '.$status->created_at.'</div>';
echo '</div>';
}
?>

My best guess is that you might have turned off Warnings (and Notices) and that the
$hometime= $Twitter->get_statusesHome_timeline();
call doesn't return any xml but "false" because it can't connect (or something).
Did you try printing $hometime after the call ?

$hometime should be an array of status objects.
Try
<?php
$hometimeline = $Twitter->get_statusesHome_timeline();
foreach($hometimeline as $status){
echo '<div class="twitter_status">';
foreach($status->user as $user){
echo '<img src="'.$user->profile_image_url.'" class="twitter_image">';
echo ''.$user->name.': ';
}
echo $status->text;
echo '<br/>';
echo '<div class="twitter_posted_at"><strong>Posted at:</strong> '.$status->created_at.'</div>';
echo '</div>';
}

Related

PHP function output sent as variable across GET

This code with a couple of functions to modify a date works:
<?php
function date_up($input_date){
echo date("Y-m-d",strtotime('+1 day',strtotime($input_date)));
}
function date_up_friday($input_date){
echo date("Y-m-d",strtotime('+3 day',strtotime($input_date)));
}
function date_down($input_date){
return date("Y-m-d",strtotime('-1 day',strtotime($input_date)));
}
function date_down_monday($input_date){
echo date("Y-m-d",strtotime('-3 day',strtotime($input_date)));
}
echo 'Input date: ';echo $date='2017-09-25';
echo '<BR><BR>';
echo 'Down 1: ';
echo date_down($date);
echo '<BR>';
echo 'Down 3: ';date_down_monday($date);
echo '<BR>';
echo 'Up 1: ';date_up($date);
echo '<BR>';
echo 'Up 3: ';date_up_friday($date);
?>
I am trying to send the output from the function to another page when the hyperlink. New code shown below. But no date is sent in the hyperlink. I don't understand this and I apologise if their is a simple explanation. I am new to working with PHP.
Many thanks in advance !
echo 'Input date: ';echo $date='2017-09-25';
echo '<BR><BR>';
echo '<a href="Dev/Update_date_shortfall.php?date="';
echo date_down($date);
echo '">Down 1: </a>';
echo date_down($date);
echo '<BR>';
echo 'Down 3: ';date_down_monday($date);
echo '<BR>';
echo 'Up 1: ';date_up($date);
echo '<BR>';
echo 'Up 3: ';date_up_friday($date);
You need to send it like this:
echo 'Down 1: ';
And in Update_date_shortfall.php, you need to
echo $_GET['date'];
you can try this
echo 'Down 1: ';
working demo : https://ideone.com/bZNwMr

How to assign a PHP expression to a PHP variable

I need to do something like
$var = "Hello World ..the value is <?php echo 'XYZ' ?>";
Any help will be highly useful. I am stuck in this from the very long time but not able to acheive this. please help
Below is my PHP code that I need to assigned again to php variable (this variable will be passed to return of my ajax call)
<div class="photo-post">
<h4 class="h4-1">Some data...</h4>
<?php
$i=0;
$unique_seq="888094499";
$pic_counter=1;
foreach (glob("target/*".$unique_seq."*") as $filename)
{
$i++;
}
$total_pics=$i;
echo "<div id='post-photo-slider'>";
if($i>1)
{
echo "<a href='#' class='control_next_photo'>></a>";
echo "<a href='#' class='control_prev_photo'><</a>";
}
echo "<ul>";
foreach (glob("target/*".$unique_seq."*") as $filename)
{
echo "<li>";
echo "<div class='photos-slide-container'>";
echo "<img src='".$filename."' width='540px' height='225px'>";
echo "<span class='count-span-photos'>".$pic_counter." of ".$total_pics."</span>";
echo "</div>";
echo "</li>";
$pic_counter++;
}
if ($i==1)
{
echo "<li></li>";
}
echo "</ul>";
echo "</div><!-- post-photo-slider END -->";
echo "<hr class='hr4'>";
?>
</div><!-- photo end -->
you cannot do it in this way
$var = "Hello World ..the value is <?php echo 'XYZ' ?>";
when you return this string to your javascript php code cannot be execute on client side!!!!
why do not return do this simple way?
$var = "Hello World ..the value is " . "XYZ";

Call a php function to echo in place

I have this code
$css=0;
<?php
echo "<div>";
function style(){
global $css;
echo $css;
}
echo "</div>";
$css =5 ; style();
?>
what i want to happen is this
<div>5</div>
and what really happens is
<div></div>5
I need to declare the value of the variable then go back and echo it in the same place it intended to be in, and I can't change the order due to many reasons in the code structure .
UPDATE :: after reading all the answers it seems i wasn't clear enough .
<html>
<?php $css=0; ?>
<div id="<?php echo $css ?>"></div>
<div id ="K"></div>
<?php
$css=5;
?>
</html>
this is the situation
1- i can not declare $css before the echo.
2- i can not reposition anything from this structure .
3- i can not put #K after the declaring of the $css .
what i really need a way to put the value inside the variable and let echo where it's .
any ideas ?
you can try this as well using js
<?php
$css=0;
echo "<div id='tt'>";
/*function style(){global $css; echo $css;}*/
echo "</div>";
$css =5 ;
echo "<script>";
echo "document.getElementById('tt').innerHTML = $css";
echo "</script>";
?>
Your function is run when you call it, and as it is called below the you get the expected 5.
To fix this:
echo "<div>";
style();
echo "</div>";
<?php
echo "<div>";
function style() {
global $css;
echo $css;
}
$css =5 ;
style();
echo "</div>";
?>
or simply:
<?php
function style() {
global $css;
echo $css;
}
$css = 5;
echo "<div>" . style() . "</div>";
?>
Previously, you well calling the function to echo out the variable after closing the div.

PHP Session SID URL - url does not have SID

I'm trying to learn how to use Sessions to maintain state between pages.
I think my problem is that I dont know how to escape properly. When I load the page im not getting the SID at the end of the url, instead I'm getting this:
mytestsite.com/login.php?<?php echo SID;?>
I have session_start() at the top of every page. And the session initialy works as I see the login name appear on the page and the Register and Login links, but then when I click to another page the session is not maintained.
The main site nav is dynamically createdusing an array($nav) and foreach loop. Here too I'm not sure how to echo the url and php SID constant. I don't think my syntax is correct.
//LOGIN BAR
echo "<nav id='statusBar'>";
echo "<ul>";
if(isset($_SESSION['userIn']) && $_SESSION['userIn'] != ''){
echo "<li id='userLo'>Log Out</li>";
echo "<li id='userLi'>User Logged In: " . $_SESSION['userIn'] . "</li>";
} else{
echo '<li>Register</li>';
echo '<li>Login</li>';
}
echo "</ul>";
echo "</nav>";
//START MAIN MENU
echo "<nav id='nav'> ";
$nav = array();
$nav['index.php?<?php echo SID;?>'] = 'Home';
$nav['public1.php?<?php echo SID;?>'] = 'Public 1';
$nav['public2.php?<?php echo SID;?>'] = 'Public 2';
$nav['members.php?<?php echo SID;?>'] = 'Members';
//CREATE UNORDERED LIST
echo '<ul>';
foreach ($nav as $key => $navValues) {
echo "<li>";
echo "<a href='$key'>$navValues</a>";
echo "</li>";
}
echo '</ul>';
echo "</nav>";
Below everything within echo '..'; is interpreted as html.
echo '<li>Login</li>';
If you want to use variables inside the string you have to concatenate them like so:
echo 'Login' ;
For concatenating php code take a look at:
http://php.net/manual/en/language.operators.string.php
and more about sessions:
http://php.net/manual/en/session.constants.php

How can i set a limit on Fousquare API

I'm fetching check-in's a place's from Foursquare API. But, API gets all check-in's. I need only 5 check-in's. How can I set a limit?
my code:
<?php if(!isset($_GET['code']) && !isset($_COOKIE['access_token'])) {
$authorizeUrl = $fsObjUnAuth->getAuthorizeUrl($redirectUri);
} else {}
$creds = $fsObj->get("/venues/{$userId}/herenow");
$f=0;
foreach ($creds->response->hereNow as $item) {}
foreach ($item as $item2) {
foreach ($item2 as $item3) {
$f++;
if($item3->firstName) {
echo '<div class="user-normal">';
echo '<img src="'.$item3->photo.'" class="avatar" />';
echo '<span class="username-def">';
echo $item3->firstName; echo ' ';
echo $item3->lastName;
echo '</span>';
echo '</div>';
if ($f==5) break;
}
;};}; ?>
i try this apigee.com and is working http://prntscr.com/1phdin. apigee is creating oauth_token but I don't understand how. I get "invalid oauth_token" error because I can't create my own.
You can pass an optional parameter to set the limit
Foursquare Developer docs
So for example:
/venues/{$userId}/herenow?limit=5

Categories