使用ios instagram登录https PHP / MySql webservice

时间:2017-11-30 18:13:07

标签: php ios mysql web-services instagram-api

我正试着把想法包围起来。我想创建一个从ios / android应用程序访问数据库的Web服务。现在我希望用户能够通过Instagram API登录应用程序。

我有点困惑,因为他们如何联系在一起。显然,第一步是登录Instagram。那我该怎么办?我想将我收到的这些用户信息(至少是用户名/ ID)保存到数据库中,其中包含一些不是来自Instagram的其他信息,例如位置。所有这些都是安全的。我可以使用Instagram令牌吗?我对这个过程有点困惑......

2 个答案:

答案 0 :(得分:3)

要执行您正在寻找的内容,最简单的方法是执行Rest WebService。

使用此WebService,您的iOS和Android应用程序都可以连接并发送/获取数据。

您的WebService应负责管理所有数据,保存或从数据库获取信息。并且还可以负责用户身份验证。

要与您的WebService通信,您的应用可以使用JSON。所以你应该学习如何发送和解析JSON。

祝你好运!

有用的链接:

Instagram's API

Instagram Integration in Android Application Tutorial

<强>更新

要将instagram用户与您的数据库相关联,您可以使用提供的用户ID:

{
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "..."
    }
}

请参阅:Instagram Authentication

答案 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进行身份验证时,您应该:

  1. 寻找您使用表格与instagram api返回的相同instagram_userid的行。
  2. 如果instagram_userid已经存在,您应该立即在您的应用程序中验证您的用户身份(例如,使用SESSIONS / COOKIES,即您一生中常用的方式)。
  3. 如果instagram_userid不存在,您应该创建一个用户行,其中包含Instagram API返回的用户名。同时使用SESSION对此用户进行身份验证。
  4. 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)
     );
    
    1. 只要用户通过Instagram API进行身份验证,您就应该在用户表中搜索与Instagram API返回的ID相同的行。
    2. 如果该行存在,请在您的应用程序中对该用户进行身份验证。
    3. 如果该行不存在,请创建该行并对用户进行身份验证。
    4. 帐户合并

      如果您的应用程序同时处理用户名/ passoword身份验证以及其他身份验证提供程序,您应该会发现用户可能会忘记他通过您的应用程序注册了Instagram Auth,并尝试通过用户名/密码进行身份验证。如果发生这种情况,您可能会提供合并帐户的方法,而不是复制帐户。例如,如果用户Instagram电子邮件作为用户名存在于您的数据库中,则应使用instagram api数据更新此行,而不是假设其新帐户。通过这种方式,现在您的用户可以使用usuername / password和Instagram进行身份验证。

      访问令牌

      存储了instagram访问令牌,但未使用。为什么?因为它将用于获取Instagram数据,例如用户的帖子,朋友列表等。如果你想这样做,你不应该认为令牌有效,因为它可能会过期,所以你应该处理令牌到期并提供一种方法让用户再次进行身份验证。