I was directly asked by an American Indian: "Don't call me Native American, First People or anything like that. I'm an Indian. Native American is a term invented by white people"
So, I called people Indians until a Native American said to me: "I prefer Native American. Indian is derogatory." When I asked her about what my previous friends said, she said "The people who want to be called Indian are ignorant people from the reservation who don't know any better"
I think it's just best policy to ask whatever term someone prefers to use, and use that.