Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Twitter1.1API和twitteroauth发布tweet_Php_Twitter_Twitter Oauth - Fatal编程技术网

Php 如何使用Twitter1.1API和twitteroauth发布tweet

Php 如何使用Twitter1.1API和twitteroauth发布tweet,php,twitter,twitter-oauth,Php,Twitter,Twitter Oauth,我使用下面的代码检索我的tweet和echo json。这个很好用 <?php session_start(); require_once('includes/twitter/twitteroauth.php'); $twitteruser = "xxxxxx"; $notweets = 3; $consumerkey = "xxxxxxx"; $consumersecret = "xxxxxx"; $accesstoken = "xxxxxxxx"; $accesstokensecre

我使用下面的代码检索我的tweet和echo json。这个很好用

<?php
session_start();
require_once('includes/twitter/twitteroauth.php');

$twitteruser = "xxxxxx";
$notweets = 3;
$consumerkey = "xxxxxxx";
$consumersecret = "xxxxxx";
$accesstoken = "xxxxxxxx";
$accesstokensecret = "xxxxxx";

$connection = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); 
$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets);

 echo json_encode($tweets);
?>

现在我想用类似的代码发送一条tweet,但它不起作用。我不确定发送语法是否正确。所以请有人帮帮我

<?php
session_start();
require_once('includes/twitter/twitteroauth.php'); //Path to twitteroauth library

$twitteruser = "xxxxxx";
$notweets = 3;
$consumerkey = "xxxxxxx";
$consumersecret = "xxxxxx";
$accesstoken = "xxxxxxxx";
$accesstokensecret = "xxxxxx";

// start connection
$connection = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);
//message
$message = "Hi how are you";
//send message
$status = $connection->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => $message));
?>

当新的API破坏twitteroauth.php时,我自己正在使用twitteroauth.php发布推文。您正在正确使用
$connection->post
,但该功能似乎不再工作。我找到的最简单的解决方案是将twitteroauth.php与J7mbo的TwitterAPI php文件替换为新的1.1 api:

这是他的使用说明。我想您会惊喜地发现,您可以保持大部分代码不变,只需在适当的位置切换twitteroauth调用和他的函数调用:

他没有提供发布tweet的具体示例,但以下是该功能所需的内容:

$url = 'https://api.twitter.com/1.1/statuses/update.json'; 
$requestMethod = 'POST';
$postfields = array(
    'status' => 'Hi how are you' ); 
echo $twitter->buildOauth($url, $requestMethod)
             ->setPostfields($postfields)
             ->performRequest();
使用新的twitterapi,您不需要提供用户名/密码。身份验证令牌将处理所有事务。

只需使用以下示例:

$connection->post('statuses/update', array('status' =>$message));
试试看 您不需要输入用户名/密码,可以通过API密钥发布。请阅读此处的教程


问题是关于加密需要加密的值:

范例

$status = $connection->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => rawurlencode($message)));
如果您签入建议的库


他们对参数进行编码的方式

我们是否可以得到作为响应的tweet id和时间?我想传递另一个带有“status”的“url”参数,可能吗