magium / mcm-twitter
这是一个简单的库,使用Magium配置管理器管理abraham/twitteroauth库的配置
0.9
2017-08-15 14:53 UTC
Requires
- abraham/twitteroauth: ^0.7.4
- magium/configuration-manager: ^1.0
This package is not auto-updated.
Last update: 2024-09-15 04:05:31 UTC
README
此库为abraham/twitteroauth提供了一个接口,您可以与Magium配置管理器一起使用。通常,应用程序将有一种静态配置机制,例如XML文件、JSON文件、YAML文件或PHP文件。这并没有什么错误,但它将您的部署和配置问题合并在一起。Magium配置管理器(MCM)打破了这种依赖,您可以将配置与部署分开管理。
此库使用MCM提供配置后的abraham/twitteroauth实例。
入门
composer require magium/mcm-twitter
配置MCM
初始化
如果您还没有这样做,请初始化MCM。
$ vendor/bin/magium-configuration
Could not find a magium-configuration.xml file. Where would you like me to put it?
[0] C:\Projects\magium-configuration.xml
[1] C:\Projects\mcm-twitter\magium-configuration.xml
> 1
Wrote XML configuration file to: C:\Projects\mcm-twitter\magium-configuration.xml
The context file C:\Projects\mcm-twitter\contexts.xml does not exist next to the magium-configuration.xml file. Create it? y
然后配置magium-configuration.xml文件。它看起来可能像这样
<?xml version="1.0" encoding="UTF-8" ?>
<magiumBase xmlns="http://www.magiumlib.com/BaseConfiguration">
<persistenceConfiguration>
<driver>pdo_sqlite</driver>
<database>/tmp/twitter</database>
</persistenceConfiguration>
<contextConfigurationFile file="contexts.xml" type="xml"/>
<cache>
<adapter>filesystem</adapter>
<options>
<cache_dir>/tmp</cache_dir>
</options>
</cache>
</magiumBase>
然后,确保已创建远程配置表
vendor/bin/magium-configuration magium:configuration:create-table
设置配置
首先列出配置键。这些是库理解的配置端点。
$ vendor/bin/magium-configuration magium:configuration:list-keys
Valid configuration keys
twitter/config/enabled (default: 1)
(Set if the adapter is enabled.)
twitter/config/consumer_key
(The consumer key from Twitter)
twitter/config/consumer_secret
(The consumer secret from Twitter)
twitter/config/oauth_token
(The Oauth token for the twitter account. Only necessary if you are binding to a specific Twitter user)
twitter/config/oauth_token_secret
(The Oauth token secret for the twitter account. Only necessary if you are binding to a specific Twitter user)
然后在https://dev.twitter.com/创建一个自定义Twitter应用程序。您至少需要消费者密钥和消费者密钥。如果您打算与您的帐户交互而不仅仅是进行身份验证,您可以从应用程序页面生成访问令牌和令牌密钥。
现在您需要配置MCM。(magium-configuration位于vendor/bin/或vendor/magium/configuration-manager/bin中)
$ magium-configuration magium:configuration:set twitter/config/consumer_key xxxxxxxxxxxxxxxx
Set twitter/config/consumer_key to xxxxxxxxxxxxxxxx (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build
$ magium-configuration magium:configuration:set twitter/config/consumer_secret xxxxxxxxxxxxxxxx
Set twitter/config/consumer_secret to xxxxxxxxxxxxxxxx (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build
$ magium-configuration magium:configuration:set twitter/config/oauth_token xxxxxxxxxxxxxxxx
Set twitter/config/oauth_token to xxxxxxxxxxxxxxxx (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build
$ magium-configuration magium:configuration:set twitter/config/oauth_token_secret xxxxxxxxxxxxxxxx
Set twitter/config/oauth_token_secret to xxxxxxxxxxxxxxxx (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build
然后您需要构建配置以编译它并将其推送到存储位置。
$ magium-configuration magium:configuration:build
Building context: default
Building context: production
用法
使用MCM需要使用Magium配置管理器工厂,它将接收正确的配置对象,然后您将其传递给Twitter工厂。这是很多词来解释这一点
require_once __DIR__ . '/../vendor/autoload.php';
$magiumFactory = new \Magium\Configuration\MagiumConfigurationFactory();
$twitterFactory = new \Magium\ConfigurationManager\Twitter\TwitterFactory($magiumFactory->getConfiguration());
$twitter = $twitterFactory->factory();
$timeline = $twitter->get(
\Magium\ConfigurationManager\Twitter\Constants::GET_STATUSES_USER_TIMELINE
);
foreach ($timeline as $tweet) {
echo $tweet->text . "\n";
}
如果您想发布更新
require_once __DIR__ . '/../vendor/autoload.php';
$opts = getopt('', [
'tweet::'
]);
if (!isset($opts['tweet']) || !$opts['tweet']) {
echo "Please provide a tweet with --tweet\n";
exit;
}
$magiumFactory = new \Magium\Configuration\MagiumConfigurationFactory();
$twitterFactory = new \Magium\ConfigurationManager\Twitter\TwitterFactory($magiumFactory->getConfiguration());
$twitter = $twitterFactory->factory();
$result = $twitter->post(
\Magium\ConfigurationManager\Twitter\Constants::POST_STATUSES_UPDATE, ['status' => $opts['tweet']]
);
var_dump($result);