使用Alamofire的ios Instagram api POST关系端点 - 错误

时间:2017-12-04 22:35:13

标签: ios swift api instagram alamofire

我在我的应用中使用swift

我正在尝试使用Alamofire发布与范围(“follower_list + relationships”)的关系(Follow)

注意:我正在使用沙盒用户进行测试

使用此代码

let userid = "testAccount"
    let urlString = "https://api.instagram.com/v1/users/\(userid)/relationship?access_token=\(INSTAGRAM_IDS.INSTAGRAM_Token)&action=follow"

    Alamofire.request(urlString).responseJSON { response in switch response.result {

        case .success(let JSON):

        let response = JSON as! NSDictionary
        let userModel = response

            print("SUCCESS")
            print(userModel)

        case .failure(let error):

            print("ERROR")
            print(error)
        }
    }

并尝试了这个

let userid = "testAccount"
    let urlString = "https://api.instagram.com/v1/users/\(userid)/relationship?access_token=\(INSTAGRAM_IDS.INSTAGRAM_Token)"
    let parameters: Parameters = ["action": "follow"]

    Alamofire.request(urlString, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: nil).responseJSON { response in switch response.result {

        case .success(let JSON):

        let response = JSON as! NSDictionary
        let userModel = response

            print("SUCCESS")
            print(userModel)

        case .failure(let error):

            print("ERROR")
            print(error)
        }
    }

但仍然有这个消息??

  

ERROR   responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain = NSCocoaErrorDomain Code = 3840“字符0周围的值无效。”UserInfo = {NSDebugDescription =字符0周围的值无效。})

任何想法?

2 个答案:

答案 0 :(得分:1)

如果您尝试发布json,我怀疑您需要使用encoding: JSONEncoding.default更改编码

  

JSONEncoding类型创建参数对象的JSON表示,该表示被设置为请求的HTTP主体。已编码请求的Content-Type HTTP头字段设置为application / json。

github上的用法

答案 1 :(得分:0)

我发现了问题....我一直在使用帐户用户名而不是用户ID 有一点不同......我的不好

您可以从(搜索)Endpoint api获取用户ID或使用类似的网站 https://smashballoon.com/instagram-feed/find-instagram-user-id/

您输入了用户名,您将获得ID