magium/mcm-twitter

这是一个简单的库,使用Magium配置管理器管理abraham/twitteroauth库的配置

0.9 2017-08-15 14:53 UTC

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);