如何在我的控制器中包含此代码? 我是否必须在供应商或类似的东西中创建目录?
require_once('twitter-sdk/twitteroauth.php');
$consumerKey = 'xxxxxxxxxxxxx';
$consumerSecret = 'xxxxxxxxxxxxx';
$accessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$accessTokenSecret = 'xxxxxxxxxxxxxxxxxxxxxxxx';
$message = "je suis entrain de tester quelque chose"; // Message à tweeter : doit contenir moins de 140 caractères
$tweet = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$res = $tweet->post('statuses/update', array('status' => $message));
print_r($res);
答案 0 :(得分:0)
您可以在bundle命名空间中创建目录 - 比如TwitterOAuth /并创建两个php文件:第一个是wuth TwitterOAuth类定义,第二个是带有身份验证逻辑(可能叫做TwitterOAuthProvider或其他东西)。将两个适当的命名空间放入其中。
TwitterOAuth对象:
<?php
namespace YourBundleNamespace\TwitterOAuth;
class TwitterOAuth {
// twitteroauth implementation
}
TwitterOAuthProvider:
<?php
namespace YourBundleNamespace\TwitterOAuth;
class TwitterOAuthProvider
{
public function authenticate()
{
// here is authentication logic
}
}
然后你可以将第二堂课注册为服务:
twitter_oauth_provider:
class: YourBundleNamespace\TwitterOAuth\TwitterOAuthProvider
从控制器中调用它:
$this->get('twitter_oauth_provider')->authenticate();
答案 1 :(得分:0)
可能是这样的吗?:
将consumerKey
,consumerSecret
,...添加到paramters.yml
文件,在您的软件包的根目录中创建一个目录,例如Component
,副本twitter-sdk
进入它,创建一个服务类,注册它:
class TwitterSDKManager
{
private $consumerKey;
private $consumerSecret;
private $accessToken;
private $accessTokenSecret;
private $message;
public function __construct($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret)
{
$this->consumerKey = $consumerKey;
$this->consumerSecret = $consumerSecret;
...
}
public function getOAuth()
{
return new TwitterOAuth($this->consumerKey, $this->consumerSecret, $this->accessToken, $this->accessTokenSecret);
}
...
}
服务配置:
...
<parameter key="twitter_sdk.manager.class">Vendor\MyBundle\Manager\TwitterSDKManager</parameter>
....
<service id="twitter_sdk.manager" class="%twitter_sdk.manager.class%">
<argument key='consumerKey'>%consumerKey%</argument>
<argument key='consumerSecret'>%consumerSecret%</argument>
....
</service>
...
用法(例如,在控制器中):
$tweet = $this->get('twitter_sdk.manager')->getOAuth();
$res = $tweet->post('statuses/update', array('status' => 'Message'));
print_r($res);