AWS Усиление мутации graphql Возможное необработанное отклонение обещания и InvalidClientTokenId - PullRequest
0 голосов
/ 12 марта 2020

Я использую AWS Amplify, React Native и Expo для создания приложения. Мои таблицы DynamoDB настраиваются с помощью файла schema.graphql, и я создал множество мутаций в файле мутаций. js. Я хочу вызвать следующие мутации. js мутация из моего HomeScreen. js файл экрана:

export const createConversation = `mutation CreateConversation(
  $input: CreateConversationInput!
  $condition: ModelConversationConditionInput
) {
  createConversation(input: $input, condition: $condition) {
    id
    centralStatement {
      id
      description
      evidence {
        id
        description
        source
        userScores
      }
      source
      userScores
    }
    participants {
      id
      username
      conversations {
        id
      }
    }
  }
}
`;

Затем я вызываю эту мутацию в HomeScreen. js с помощью кнопки «Начать разговор» :

import { API, graphqlOperation } from 'aws-amplify'
import { createConversation } from '../src/graphql/mutations'

export default function HomeScreen() {

    let handleConvoStartPress = async () => {

        let convoData = {
            id: 'blah',
            centralStatement: {
                id: 'blah',
                description: 'blah',
                evidence: {
                    id: 'blah',
                    description: 'blah',
                    source: 'blah',
                    userScores: 'blah',
                },
                source: 'blah',
                userScores: 'blah',
            },
            participants: {
                id: 'blah',
                username: 'blah',
                conversations: {
                    id: 'blah',
                },
            },
        };

        let newConvo = await API.graphql(graphqlOperation(createConversation, {input: convoData}))
        console.log('*** Success ***');
        console.log(newConvo);
    }

    return (
        <View>
            <ScrollView>
                <View>
                    <TouchableOpacity onPress={handleConvoStartPress}>
                        <Text>
                            Start a conversation
                        </Text>
                    </TouchableOpacity>
                </View>
            </ScrollView>
        </View>
    );
}

Но когда я нажимаю «Начать разговор», я получаю эту ошибку:

Possible Unhandled Promise Rejection (id: 0):
Object {
  "data": Object {},
  "errors": Array [
    [GraphQLError: Request failed with status code 403],
  ],
}

- что я думаю (с это ) означает, что мне нужно добавить сертификат X.509 или AWS идентификатор ключа доступа. Как я могу это сделать? Я изо всех сил пытаюсь найти правильные инструкции / примеры.

...