5

XCode 7.1用に作成されたプロジェクトに最新の Facebook SDK を追加しましたiOS 9.1。残念ながら、私が知っているのはSwiftであり、 Objective Cではありません。Facebook の開発者サイトのドキュメントには、 Objective Cのドキュメントしかありません。Google で検索するたびに、過去 6 か月で状況が大きく変化したため、古すぎるドキュメントが表示されます。だから私はちょっと迷っています。

plistファイルを使ってすべての簡単なことをしました。

私は使用できました:

import FBSDKCoreKit
import FBSDKLoginKit

私も追加しました:

return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)

return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

私のAppDelegate.swiftファイルに。これはすべて機能し、正常にビルドされます。明らかに、正しいフレームワークも追加されています。この時点を超えると、ログインボタンを追加するための構文がわからないため、トークンやユーザーのアカウントに保存するために使用できるその他のプロファイル情報を含むjson文字列が返されると想定するものをキャプチャするための構文がわからないため、私は立ち往生しています。 .

4

2 に答える 2

8

あなたは正しい軌道に乗っています。

pList はもう設定しましたか?

VC に追加し、ログイン ボタンを追加し、デリゲートを処理し、FB 情報を処理する必要があります。次のようなもの (正確ではありません):

class yourVC: UIViewController, FBSDKLoginButtonDelegate, UITextFieldDelegate 

{
var loginView : FBSDKLoginButton = FBSDKLoginButton()

viewDidLoad() {
            loginView.frame = CGRectMake(20, 20, theWidth-40, 40)
            self.view.addSubview(loginView)
            loginView.readPermissions = ["public_profile", "email", "user_friends","user_birthday"]
            loginView.delegate = self

}

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
        if ((error) != nil)
        {
        //handle error
        } else {
                returnUserData()
        }
    }

func returnUserData()
    {


  let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id,interested_in,gender,birthday,email,age_range,name,picture.width(480).height(480)"])
    graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

        if ((error) != nil)
        {
            // Process error
            print("Error: \(error)")
        }
        else
        {
            print("fetched user: \(result)")
            let id : NSString = result.valueForKey("id") as! String
            print("User ID is: \(id)")
            //etc...
         }
      })
}

このreturnData()部分をいじって正しくする必要がありますが、このコードで 90% は達成できるはずです。

幅広い権限 (ユーザーの年齢、興味など) を含めましたが、自分で構成する必要があります。正直なところ、この部分 (難しい部分) はオブジェクト C の対応物と非常によく似ており、文書化されています。動作している get プロジェクトをいくつかダウンロードし、それらを一緒に解析して、あなたの好みに合ったものにしてみてください。

すべてを機能させるのは難しいかもしれませんが、試してみて、それを続けてください!

于 2015-11-02T16:25:51.980 に答える