如何向Twitter发帖?

时间:2013-08-07 07:28:30

标签: php twitter

我想自动将一些文字发布到我的应用程序Twitter帐户。我为此创建一个帐户并获取所有需要的信息并为其编写一个PHP代码。这是简单的代码: 我只是为了测试帖子的能力:

    <?php
    require_once 'oauth/twitteroauth.php';
    $message = "hiiiiiii"; #actual message to twitter

    define("CONSUMER_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");    
    define("CONSUMER_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    define("OAUTH_TOKEN", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    define("OAUTH_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
print_r($connection);

    $content = $connection->get('account/verify_credentials');
//print_r($content);


    $connection->post('statuses/update', array('status' => $message));
   ?>

我从帐户中获取信息,所以我认为连接正常,但为什么我不能发布任何内容?我试图发布此消息,但执行此代码后,我的Twitter上没有任何新的推文显示????

$ connection-&gt; post是一种方法:

 /**
   * POST wrapper for oAuthRequest.
   */
  function post($url, $parameters = array()) {
    $response = $this->oAuthRequest($url, 'POST', $parameters);
    if ($this->format === 'json' && $this->decode_json) {
      return json_decode($response);
    }
    return $response;
  }

1 个答案:

答案 0 :(得分:0)

如果您能够使用这些凭据从帐户接收信息,我的第一个停靠点就是您的应用已阅读 AND 写入(发布)权限:

  

转到dev.twitter.com/apps。选择您的应用,然后选择“设置” - &gt;   '应用类型'你会找到你需要的东西。

虽然这不起作用,但无论您在代码中通过此应用程序发布到您的帐户中的内容都无效,因为该功能超出了您自己设置的权限。所以现在我们知道你可以发布:

更改

$connection->post('statuses/update', array('status' => $message));

$result = $connection->post('statuses/update', array('status' => $message));

然后看看$ result的值是多少。这可能会提供一些线索

好的,所以响应告诉你,你仍然没有权限,你需要重新生成令牌并访问凭据,然后用它们更新你的代码:

 define("CONSUMER_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");    
 define("CONSUMER_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
 define("OAUTH_TOKEN", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
 define("OAUTH_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

这些凭据仍然附加了以前的权限,当您请求新令牌时,它将引用新权限并允许您发布。