【问题标题】:React Google API反应谷歌 API
【发布时间】:2018-03-21 21:46:33
【问题描述】:

我是 React 和 RN 的新手。我已经研究了这里的每一个解决方案,但我没有找到适合我的案例的解决方案。我正在尝试从日历 v3 api 中提取谷歌日历事件。到目前为止,我已经尝试了两种方法。我不知道哪个是正确的,但我没有得到任何一个正确的结果。首先,我尝试向https://www.googleapis.com/calendar/v3/calendars/${CALENDAR_ID}/events?key=${API_KEY}( 我不知道是否需要 key 参数。我认为我们应该删除前面的 key 参数api 密钥。我这样做是因为否则它会给出一个错误,因为找不到全局。

这是 calendar.js

const CALENDAR_ID = 'public@qeqw'
const API_KEY = 'key'
let url = `https://www.googleapis.com/calendar/v3/calendars/${CALENDAR_ID}/events?key=${API_KEY}`

export function getEvents (callback) {
  request
    .get(url)
    .end((err, resp) => {
      if (!err) {
        const events = []
        JSON.parse(resp.text).items.map((event) => {
          events.push({
            start: event.start.date || event.start.dateTime,
            end: event.end.date || event.end.dateTime,
            title: event.summary,
          })
        })
        callback(events)
      }
    })
}

这是 app.js

import React from 'react'
import { render } from 'react-dom'
import { getEvents } from './gcal'
import { View, Text, 
StatusBar,Image,AppRegistry,ScrollView,StyleSheet,Platform,FlatList} from 
'react-native'


class App extends React.Component {
  constructor () {
    super()
    this.state = {
      events: []
    }
  }
  componentDidMount () {
    getEvents((events) => {
      this.setState({events})
    })
  }
  render () {
    return (
      // React Components in JSX look like HTML tags
      <View>
        <Text>{this.state.events}</Text>
      </View>
    )
  }
}

但是,我在下面遇到了错误。我不知道我做错了什么,但应该可以发送这样的请求。我唯一担心的是,如果我需要通过使用 OAuth2 身份验证提供我的客户信息来获取令牌。我是否需要注册并获取令牌才能访问 API?如果我需要这样做,我已经通过阅读此处的示例在节点 js 中实现了它。https://developers.google.com/calendar/quickstart/nodejs 但是有一些节点模块我不能在我的 React 本机应用程序中使用它们,如 fs、googleAuth、readline 等。 . 其中一些可以通过使用 nodeify 来完成,但其他一些会抛出错误。所以,从现在开始,我不知道该怎么办。如果有人可以指导我如何在反应中使用谷歌日历 api,我将不胜感激。感谢所有在这里做出贡献的人。

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

【问题讨论】:

    标签: reactjs events react-native google-calendar-api


    【解决方案1】:

    如错误消息所示,您超出了该 API 的使用范围。 您需要注册才能继续使用 API。

    注册后,您可以使用 Request-Promise 之类的库来发出 API 请求。

    您可以在 npm 中搜索与 Google 日历 API 接口的 react 组件such as this one

    【讨论】:

      【解决方案2】:

      这个错误是由一个愚蠢的错误引起的。 url 中的关键参数不应放在括号中。它不起作用的原因是api键前面的参数键在括号中。如果你删除它,它就像一个魅力。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-29
        • 1970-01-01
        • 1970-01-01
        • 2020-10-29
        • 2021-01-30
        • 2016-11-04
        • 1970-01-01
        相关资源
        最近更新 更多