如何在TwitterOAuth中打印推文的超链接

时间:2015-11-05 04:17:35

标签: php twitter-oauth

我使用TwitterOAuth从我自己的PHP代码发推文。一切都很好。我只是想知道如何回应用户通过我的PHP应用程序发布的tweet的超链接。这是我用于推文发布的代码:

<?php

//LOADING LIBRARY
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;


$consumer_key = '';
$consumer_secret = '';
$access_token = "";
$access_token_secret = "";


$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
$content = $connection->get("account/verify_credentials");

$statues = $connection->post("statuses/update", array("status" => "hello world"));

if ($connection->getLastHttpCode() == 200) {
    echo 'Tweet posted succesfully';

} else {
    echo 'Handle error case';
}

?>

1 个答案:

答案 0 :(得分:1)

Twitter statuses/update在您发布推文后发出的回复记录here
对我来说,它看起来像这样 -

Array
(
    [id_str] => 662128569695383552
    ...
    [user] => stdClass Object
        (
            [screen_name] => couchthomas
            ...

id_strscreen_name可用于构建推文网址。

https://twitter.com/<screen_name>/status/<id_str>

所以,如果你得到一个像上面这样的回复,它看起来就像这样 -

$id_str = $statues["id_str"];
$screen_name = $statues["user"]->screen_name;
$tweet_url = "https://twitter.com/$screen_name/status/$id_str";

尝试var_dump $statues变量并相应地构建它。

修改 现在我已经确定了OP输出,澄清了这个答案 输出看起来像这样 -

object(stdClass)#7 (23) { 
    ["created_at"]=> string(30) "Thu Nov 05 12:17:43 +0000 2015" 
    ["id"]=> int(662242385318014977) 
    ["id_str"]=> string(18) "662242385318014977" 
    ...
    ["user"]=> object(stdClass)#22 (40) 
        { 
            ...
            ["name"]=> string(8) "Eggs Lab" 
            ["screen_name"]=> string(7) "EggsLab" 

因此,相应地,您可以获取推文的id_str(这是一个直接键statues)和用户的screen_name(它是嵌套在obj user里面$statues)by -

$id_str = $statues->id_str;
$screen_name = $statues->user->screen_name;

并按上述说明创建推文网址。