+
+function twitter_test_connection(int $uid)
+{
+ $stack = HandlerStack::create();
+
+ $middleware = new Oauth1([
+ 'consumer_key' => DI::pConfig()->get($uid, 'twitter', 'api_key'),
+ 'consumer_secret' => DI::pConfig()->get($uid, 'twitter', 'api_secret'),
+ 'token' => DI::pConfig()->get($uid, 'twitter', 'access_token'),
+ 'token_secret' => DI::pConfig()->get($uid, 'twitter', 'access_secret'),
+ ]);
+
+ $stack->push($middleware);
+
+ $client = new Client([
+ 'handler' => $stack
+ ]);
+
+ try {
+ $response = $client->get('https://api.twitter.com/2/users/me', ['auth' => 'oauth']);
+ $status = [
+ 'code' => $response->getStatusCode(),
+ 'reason' => $response->getReasonPhrase(),
+ 'content' => $response->getBody()->getContents()
+ ];
+ DI::pConfig()->set(1, 'twitter', 'last_status', $status);
+ Logger::info('Test successful', ['uid' => $uid]);
+ } catch (RequestException $exception) {
+ $status = [
+ 'code' => $exception->getCode(),
+ 'reason' => $exception->getResponse()->getReasonPhrase(),
+ 'content' => $exception->getMessage()
+ ];
+ DI::pConfig()->set(1, 'twitter', 'last_status', $status);
+ Logger::info('Test failed', ['uid' => $uid]);
+ }
+}