3
respostas

Fotos do feed nao aparecem usando a API implantada no Heroku

Apps.js

import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    Text,
    View,
    Image,
    Dimensions,
    FlatList,
    AppRegistry
} from 'react-native';

import Post from './components/Post';

const width = Dimensions.get('screen').width;

class App extends Component {

    constructor() {
        super();
        this.state = {
            fotos: []
        }
    }

    componentDidMount() {
        fetch('https://instalura-api.herokuapp.com/api/public/fotos/rafael')
            .then(resposta => resposta.json())
            .then(json => this.setState({fotos: json}));
    }

    render() {
        return (
            <FlatList style={styles.container}
                keyExtractor={item => String(item.id)}
                data={this.state.fotos}
                renderItem={ ({item}) =>
                    <Post foto={item}/>
                }
            />
        );
    }
}

const styles = StyleSheet.create({
    constainer:{
        marginTop: 20
    }
});

export default () => {
    AppRegistry.registerComponent('InstaluraMobile', () => App);
}

Post.js

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View,
  Image,
  Dimensions,
  FlatList
} from 'react-native';

const width = Dimensions.get('screen').width;

export default class Post extends Component<{}> {
    render() {
        return(
            <View>
                <View style={styles.cabecalho}>
                    <Image source={{uri: this.props.foto.urlPerfil}} style={styles.fotoDePerfil} />
                    <Text>{this.props.foto.loginUsuario}</Text>
                </View>
                <Image source={{uri: this.props.foto.urlFoto}} style={styles.foto} />
            </View>
        );
    }
}

const styles = StyleSheet.create({
    cabecalho: {
        margin:10,
        flexDirection: 'row',
        alignItems: 'center'
    },
    fotoDePerfil: {
        margin: 10,
        borderRadius: 20,
        width:40, height:40
    },
    foto: {
        width:width,
        height:width
    }
})

Nao apresenta erro no app. Mas se chamar a API direto do browser e tentar acessar a url da foto, retorna msg de acesso negado. Como proceder?

3 respostas

Oi Leonildo, tudo bem? Está dando acesso negado, talvez por causa de alguma coisa no Facebook, mas eu vou ver com o pessoal se não podemos trocar as imagens, Tá bem?

Agradecido Wanderson. Testei tambem com a api java que esta no github e acontece a mesma coisa, inclusive, nesse repo nao vi instrucoes sobre como popular o banco, acabei abrindo uma issue e perguntando. Tem como incluir essa instrucao no readme ?

A issue foi respondida e esta resolvida.

Oi Leonildo, tudo bem? Na verdade, acionei o instrutor por causa de outro tópico aberto aqui e ele respondeu lá o por que do problema e qual foi a solução.

Como popular o banco está descrito no exercício do curso. Talvez tenha pulado essa parte?

Link: https://cursos.alura.com.br/forum/topico-urlfoto-nao-esta-carregando-access-denied-65314