首页 > 解决方案 > 有没有办法使用颤振访问 twitter API 而不会出错?

问题描述

我刚开始学习 Flutter,想知道如何访问我正在创建的项目的 twitter API 的端点。一开始我想显示一条推文(最终它会是一个用按钮生成的随机推文。)

我的代码如下:

import 'package:twitter_api/twitter_api.dart';
import 'package:flutter/material.dart';
void main() {
  runApp(Twittwrapp());
}
final _oauth = new twitterApi(
  consumerKey: 'consumerkeyhere',
  consumerSecret: 'consumersecrethere',
  token: 'tokenhere',
  tokenSecret: 'tokensecrethere',
);
Future twitterRequest = _oauth.getTwitterRequest(
  "GET",
  "statuses/user_timeline.json",
  options: {
    "user_id": "19025957",
    "screen_name": "TTCnotices",
    "count": "20",
    "trim_user": "true",
    "tweet_mode": "extended",
  },
);
class Twittwrapp extends StatefulWidget{
  @override
  _Twitte createState() => _Twitte();
}

class _Twitte extends State<Twittwrapp>{
  var tweet = await twitterRequest;
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Text(tweet),
      ),
    );
  }
}

我得到的错误是 XMLHTTPREQUEST。

标签: flutterandroid-studiodarttwitter

解决方案


你可以试试这个。

import 'package:http/http.dart' as http;

var response = await http.get(Uri.http('example.com', 'apiPath'), //without https:// http:// or www
      headers: <String, String>{
        'consumerKey': 'consumerkeyhere',
        'consumerSecret': 'consumersecrethere',
        'token': 'tokenhere',
        'tokenSecret': 'tokensecrethere',
        ...
      }
    );

    if (response.statusCode == 200) {
      // request successful
      print(response.body);
      getQuestion();
    } else {
      // request error
      print(response.statusCode); // compare this code with https://developer.mozilla.org/en-US/docs/Web/HTTP/Status and find the problem
    }

推荐阅读