我正试着把想法包围起来。我想创建一个从ios / android应用程序访问数据库的Web服务。现在我希望用户能够通过Instagram API登录应用程序。
我有点困惑,因为他们如何联系在一起。显然,第一步是登录Instagram。那我该怎么办?我想将我收到的这些用户信息(至少是用户名/ ID)保存到数据库中,其中包含一些不是来自Instagram的其他信息,例如位置。所有这些都是安全的。我可以使用Instagram令牌吗?我对这个过程有点困惑......
答案 0 :(得分:3)
要执行您正在寻找的内容,最简单的方法是执行Rest WebService。
使用此WebService,您的iOS和Android应用程序都可以连接并发送/获取数据。
您的WebService应负责管理所有数据,保存或从数据库获取信息。并且还可以负责用户身份验证。
要与您的WebService通信,您的应用可以使用JSON。所以你应该学习如何发送和解析JSON。
祝你好运!
有用的链接:
Instagram Integration in Android Application Tutorial
<强>更新强>
要将instagram用户与您的数据库相关联,您可以使用提供的用户ID:
{
"access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
"user": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "..."
}
}
答案 1 :(得分:1)
完成第3步Instagram Autorization之后,这很简单,我不会谈论它,因为你的问题是如何将Instagram数据与你的数据库集成,你应该收到以下json:
{
"access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
"user": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "..."
}
}
您对数据的处理方式是基本原则:
1)您的用户可以通过Instagram或常规用户名/密码进行授权
创建一个同时包含密码字段和instagram user_id的用户表:
您的用户表可能如下:
CREATE TABLE users (
id INT AUTO_INCREMENT NOT NULL ,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) DEFAULT NULL,
instagram_userid INT DEFAULT NULL,
instagram_accesstoken VARCHAR(255) DEFAULT NULL,
PRIMARY KEY(id)
);
用户通过Instagram进行身份验证时,您应该:
2)Instagram是您进行身份验证的唯一用户选择
然后,您应该只创建一个仅用于返回instagram api的镜像的用户表。您可以将instagram_userid视为主键:
CREATE TABLE users (
username VARCHAR(255) NOT NULL,
instagram_userid INT DEFAULT NULL,
instagram_accesstoken VARCHAR(255) DEFAULT NULL,
PRIMARY KEY(instagram_userid)
);
帐户合并
如果您的应用程序同时处理用户名/ passoword身份验证以及其他身份验证提供程序,您应该会发现用户可能会忘记他通过您的应用程序注册了Instagram Auth,并尝试通过用户名/密码进行身份验证。如果发生这种情况,您可能会提供合并帐户的方法,而不是复制帐户。例如,如果用户Instagram电子邮件作为用户名存在于您的数据库中,则应使用instagram api数据更新此行,而不是假设其新帐户。通过这种方式,现在您的用户可以使用usuername / password和Instagram进行身份验证。
访问令牌
存储了instagram访问令牌,但未使用。为什么?因为它将用于获取Instagram数据,例如用户的帖子,朋友列表等。如果你想这样做,你不应该认为令牌有效,因为它可能会过期,所以你应该处理令牌到期并提供一种方法让用户再次进行身份验证。