Android Instagram登录集成

时间:2018-09-14 08:18:06

标签: android instagram instagram-api

我正在尝试通过不具有Graph API的Instagram进行社交登录,并从Instagram文档和StackOverflow中读取与之相关的所有必要内容。

以下是我迄今为止在项目中所做的事情:

  1. 通过我的用户名密码登录Instagram的开发者帐户。

  2. 管理客户端>注册新客户端,并将生成的客户端ID,密钥和重定向URL添加到我的常量文件中。

  3. 对于Web视图,我的完整URL是:https://api.instagram.com/oauth/authorize/?client_id=af7efcca661e43459b1e502af7ddb689&redirect_url=https://instagram.com/&response_type=token&scope=basic+public_content

  4. 当我在WebView中输入用户名和密码而不是在重定向URL上导航时,它不断在WebView上显示以下错误: <modal> <contract-form></contract-form> </modal>

  5. 我想收到{"error_type": "OAuthException", "code": 400, "error_message": "You must include a valid client_id, response_type, and redirect_uri parameters"},但显示我的错误。

下面是我需要的代码:

MainActivity.java

access_token

AuthenticationDialog.java

public class MainActivity extends AppCompatActivity implements AuthenticationListener {

    private AuthenticationDialog authDialog;
    private Context context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        context = this;
    }

    @Override
    public void onCodeReceived(String token) {
        if (token == null)
            return;
    }

    @OnClick(R.id.buttonLogin)
    public void loginClick() {
        authDialog = new AuthenticationDialog(this, this);
        authDialog.setCancelable(true);
        authDialog.getWindow().setLayout(((getWidth(context) / 100) * 90), LinearLayout.LayoutParams.MATCH_PARENT);
        authDialog.getWindow().setGravity(Gravity.CENTER);
        authDialog.show();
    }

    public static int getWidth(Context context) {
        DisplayMetrics displayMetrics = new DisplayMetrics();
        WindowManager windowmanager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        windowmanager.getDefaultDisplay().getMetrics(displayMetrics);
        return displayMetrics.widthPixels;
    }
}

并根据日志,代码最后出现在“两者之外”中,并且WebView也在显示我在第No点中提到的错误。 4。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

好吧,您只需在Web浏览器上使用URL对其进行测试,以检查URL是否有效。而且我想这不是Java代码问题,而是您在Manage Clients

中的设置问题

请确保instagram开发者网站上的设置client_id正确且redirect_url相同。